|
33582
|
air by @dylankaru | Stardance
|
dylankaru
|
2
|
62.0
|
968
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T08:42:38Z", "hours": 25.0, "multiplier": 17.33, "payout": 426, "blessing": "neutral", "text": "air is a lightweight macOS dashboard that collapses your morning routine into one glance. There’s no more opening five different apps just to check the weather, news, and what’s on today. Genuinely made organising my day so much easier since now I have a place I can easily access to see what I have left in the day and just stats about the day in general. Version 2.0.0 is here. Yay! I’ve added a bunch of new cards, those being the list generator, world clock, unit converter, RNG generator, public IP viewer, and a QR code generator. I’ve also added a few new features, those being temporary cards which let you view a single card as a floating overlay without adding it permanently to your dashboard; and spaces which act as separate card lists which support different themes. It was pretty difficult doing figuring out the QR code generator but I eventually made it work well. Air v2 now supports a minimum of macOS Sonoma (14), which is earlier than previous versions so that’s a good thing too. A project demo video will be available to watch on the projects ReadMe if you can’t/don’t want to download it :)", "repo": "https://github.com/dylankaru/air", "demo": "https://github.com/dylankaru/air/releases/tag/v1.0.1"}, {"ship_num": 2, "ts": "2026-08-26T04:01:39Z", "hours": 37.0, "multiplier": 14.95, "payout": 542, "blessing": "neutral", "text": "air is a lightweight macOS dashboard that collapses your morning routine into one glance. There’s no more opening five different apps just to check the weather, news, and what’s on today. Genuinely made organising my day so much easier since now I have a place I can easily access to see what I have left in the day and just stats about the day in general. The audio player was definitely the hardest part, having to quickly rundown on AppleScript and then also learn how to interact with macOS’s Now Playing system. I ended up finding an external CLI tool called nowplaying-cli by Kirtan Shah and others to pull metadata from it. I’m very, very happy with how this entire project turned, this is to date the best Swift project I’ve ever made by far, but I only plan to improve from here. Air requires a computer running at least macOS 26 and using an arm processor (so Apple Silicon) to run. macOS may also show a security warning on first launch, if it does just right-click the app and choose open to get past it.", "repo": "https://github.com/dylankaru/air", "demo": "https://github.com/dylankaru/air/releases/tag/v1.0.1"}]...
|
[{"post_id": 72490, "ts": "202 [{"post_id": 72490, "ts": "2026-09-23T02:25:22Z", "hours": 2.6056, "text": "Ive finished spaces, which have configurable keybinds that let users navigate through different layouts of cards. Different spaces can have different names, use different themes and have different cards. Adding this actually let me fix a few bugs that I didn’t know I had, mainly with the keybind recorder where after a keybind was set, if a valid keybind was still typed on the keyboard (after the alleged recording state was over) it would rebind it anyway."}, {"post_id": 72116, "ts": "2026-09-22T06:15:24Z", "hours": 3.6028, "text": "I finally got around to adding things to air, since im also doing another ysws thing, but I’ve finally got around to making the temporary card system; it basically acts as a overlay over the normal UI and can be opened using Cmd + K . There’s a search bar to search thru all registered cards. I plan to add spaces either tonight and tomorrow, and then air will be ready to ship again :)"}, {"post_id": 68010, "ts": "2026-09-14T11:31:44Z", "hours": 3.9642, "text": "Ive added two new both pretty simple cards, an IP card that shows your public ipv4 (and 6 if available) and a qr code generator card for any reachable web address. It took a while to figure out how to generate the qr code but coreimage has a way to help me render it. I’m not really sure how else to add to the IP card, but the QR code card has a bunch of customisability features including changing the colour and style of elements in the qr code whilst still being readable. The card can also export the code as a png :)"}, {"post_id": 65198, "ts": "2026-09-10T05:02:34Z", "hours": 2.4389, "text": "So I’ve made new cards now, an RNG card because why not and a configurable world clock. Nothing really too hard with these, tbh they are very simple cards; but they are meant to be so that’s most likely gonna be good for a future update iykwim ;)"}, {"post_id": 64057, "ts": "2026-09-08T05:54:40Z", "hours": 1.1375, "text": "Hi I’ve created a unit conversion card. I initially created my own conversion system which I thought was alright but then I found out that Foundation has built in conversions so I remodelled it to just be a UI front."}, {"post_id": 62854, "ts": "2026-09-06T11:55:24Z", "hours": 1.0897, "text": "Hello I’ve added swipe and click gestures to the news card to make it possible to navigate thru the different news articles, which was a good feature that my friend suggested so thanks to him. I’ve also decided what I want to do for v1.2 and possibly even a v2 since it seems like a large enough deal to release a new version 😱 Here’s what i’m thinking: for v1.2: – unit converter – world clock – public ip – random number generator – countdown – calc – qr code generator/link shortener (maybe) – colour picker – word of the day so basically more cards, but theres a reason: for v2 – spaces, basically different layouts of cards that can have different cards – temporary cards, summoning and focusing cards for sort amounts of time and then dismissing them I think this might be a good roadmap for air. I hope you will enjoy using the new air app as much as I will enjoy making it :)"}, {"post_id": 62129, "ts": "2026-09-05T11:47:24Z", "hours": 5.3814, "text": "This one took a while. I made a list generator card because I needed a way to actually remember what exercises to do, but it can be generalised for any sort of random list generation that you may need to do consistently. The hard part was making rules, which basically tell the generator when to change the odds of any specific category or item in general. Initially I was going to make it so that the user would have to use Swift to do it themselves, but that would make it inaccessible to an extent so I decided to just add rules as block based components, though they are now much more restricted."}, {"post_id": 60202, "ts": "2026-09-02T13:00:08Z", "hours": 2.9028, "text": "I’ve gotten feedback from the ship (tysm for all the feedback) and based off it I’ve made some changes to air and am also planning to change more. First of alll the to do card is now called the notes card since you can add multiple pages for different kinds of notes you may want to quickly jot down, this was my own volition not any feedback. I think the most useful feedback I got was setting the minimum deployment too high i.e. macos 26, and yes that was just because I was too lazy to change all the glass elements, but it turns it was ez (adding themes was harder) so now the minimum deployment is probably 14, though idk how to actually test it on an older os. I just made a new modifier that checked the version once rather than running the check in every single instance of the glass elements.."}, {"post_id": 57344, "ts": "2026-08-29T13:53:47Z", "hours": 1.4575, "text": "After taking a day off, I took a look at air, which at the time I was very proud off, but now I realise that it’s horrenda(saurus rex, those who know).. Today I added a new velvet style (might change the colours of this one but I need a second opinion) and spent the rest of the time just fixed some padding inconsistencies, minor UX upgrades, and a few other bugs; mainly the eyesore caused by the lack of proper colouring of non-text elements using the text colour, dividers looking out of place and bad in general, and the bugs with the to do list, being that overflow extended the card and non-multiline entries. The reason I thought it was ready to ship is because I had no idea what else to put, but now I have many ideas to that will hopefully improve the UX of the app. In the coming days I’m thinking of added a few new cards, adding new features to existing cards to make them more useful, and fixing other bugs that I’ve noticed."}, {"post_id": 54886, "ts": "2026-08-26T03:07:20Z", "hours": 10.5944, "text": "Hi So finally I added resizing the cards with a draggable UI gesture, and added themes thanks to skue’s suggestion (ty kind soul 😁) and a system stats card as well as a website/app shortcuts card because I had no idea what else to add. I added a dark, green, brown, blue and pink theme which differ to the original light (which is technically beige) theme, my personal favourite is the brown."}, {"post_id": 52191, "ts": "2026-08-22T08:57:46Z", "hours": 5.1172, "text": "Well hello there Ive added a clipboard manager because my raycast beta broke and i cannot be bothered reinstalling, also this ones easier to access so imo its a lot better. I also revamped the calendar card and internet speed test. I am thinking of adding more the to speed test like ping, but idk what else to add in the space but its daijyoubu i will find something to put there. I also revamped the news card so the text wasnt cut off, a couple of my friends noticed it and told me. Idk if i mentioned this in the previous devlog but i also changed the settings view instantiation so that if someone (myself too) can have an easier time adding a settings page for a card, as they are passed through at the same time so ye. Thanks for reading"}, {"post_id": 49368, "ts": "2026-08-18T04:40:24Z", "hours": 5.6594, "text": "Hello I’ve added 3 new cards: a pomodoro style timer card with adjustable time lengths, a calendar access card that (after granting permission) retrieves your next closest event, and a network card that checks your internet speed. I plan to add a few more cards, but most importantly (to me at least) is adding two features: A layout customiser that lets you change the organisational layout of the cards A guide on how to (theoretically) add one’s own cards, granted said person knows basic SwiftUI Thanks for reading :)"}, {"post_id": 46918, "ts": "2026-08-14T13:51:06Z", "hours": 8.9567, "text": "Hello again I’ve added a few more features since last time so yay that’s good. I’ve created a settings page where configuration of the existing cards is possible, for example atm u can change the info the weather card shows, and settings to configure the streak (i nearly spelt it configurate lol). I’ll be honest, I’m mostly proud of the audio player, since that took a very long time and it was a suggestion from a friend. It’s actually kinda handy coz even if spotify/music isnt open it will still start playing from it, and it can also control video sources from youtube from your browser yk, that took a long time to figure out."}, {"post_id": 45042, "ts": "2026-08-11T08:54:20Z", "hours": 6.5256, "text": "Hello Hi, this is my first devlog, I don’t really know what to put here so I’ll be brief. I’ve finished setting up the basic infrastructure for the cards, so now all that’s left to do is make more cards and add customisation features. I’ve currently done a greeting panel that uses cards to do so, also a weather card, news card and to do card, though they all need improvement and polishing of the design. I’ve also set up a backend api on a server of mine to run all my api requests to groq (for greeting), weatherapi.com (for calculating the time, what else would i do with this 😡) and newsdata.io without exposing my api keys Thanks"}]...
|
Title: air by @dylankaru | Stardance
Devlogs:
Hel Title: air by @dylankaru | Stardance
Devlogs:
Hello Hi, this is my first devlog, I don’t really know what to put here so I’ll be brief. I’ve finished setting up the basic infrastructure for the cards, so now all that’s left to do is make more cards and add customisation features. I’ve currently done a greeting panel that uses cards to do so, also a weather card, news card and to do card, though they all need improvement and polishing of the design. I’ve also set up a backend api on a server of mine to run all my api requests to groq (for greeting), weatherapi.com (for calculating the time, what else would i do with this 😡) and newsdata.io without exposing my api keys Thanks
Hello again I’ve added a few more features since last time so yay that’s good. I’ve created a settings page where configuration of the existing cards is possible, for example atm u can change the info the weather card shows, and settings to configure the streak (i nearly spelt it configurate lol). I’ll be honest, I’m mostly proud of the audio player, since that took a very long time and it was a suggestion from a friend. It’s actually kinda handy coz even if spotify/music isnt open it will still start playing from it, and it can also control video sources from youtube from your browser yk, that took a long time to figure out.
Hello I’ve added 3 new cards: a pomodoro style timer card with adjustable time lengths, a calendar access card that (after granting permission) retrieves your next closest event, and a network card that checks your internet speed. I plan to add a few more cards, but most importantly (to me at least) is adding two features: A layout customiser that lets you change the organisational layout of the cards A guide on how to (theoretically) add one’s own cards, granted said person knows basic SwiftUI Thanks for reading :)
Well hello there Ive added a clipboard manager because my raycast beta broke and i cannot be bothered reinstalling, also this ones easier to access so imo its a lot better. I also revamped the calendar card and internet speed test. I am thinking of adding more the to speed test like ping, but idk what else to add in the space but its daijyoubu i will find something to put there. I also revamped the news card so the text wasnt cut off, a couple of my friends noticed it and told me. Idk if i mentioned this in the previous devlog but i also changed the settings view instantiation so that if someone (myself too) can have an easier time adding a settings page for a card, as they are passed through at the same time so ye. Thanks for reading
Hi So finally I added resizing the cards with a draggable UI gesture, and added themes thanks to skue’s suggestion (ty kind soul 😁) and a system stats card as well as a website/app shortcuts card because I had no idea what else to add. I added a dark, green, brown, blue and pink theme which differ to the original light (which is technically beige) theme, my personal favourite is the brown.
After taking a day off, I took a look at air, which at the time I was very proud off, but now I realise that it’s horrenda(saurus rex, those who know).. Today I added a new velvet style (might change the colours of this one but I need a second opinion) and spent the rest of the time just fixed some padding inconsistencies, minor UX upgrades, and a few other bugs; mainly the eyesore caused by the lack of proper colouring of non-text elements using the text colour, dividers looking out of place and bad in general, and the bugs with the to do list, being that overflow extended the card and non-multiline entries. The reason I thought it was ready to ship is because I had no idea what else to put, but now I have many ideas to that will hopefully improve the UX of the app. In the coming days I’m thinking of added a few new cards, adding new features to existing cards to make them more useful, and fixing other bugs that I’ve noticed.
I’ve gotten feedback from the ship (tysm for all the feedback) and based off it I’ve made some changes to air and am also planning to change more. First of alll the to do card is now called the notes card since you can add multiple pages for different kinds of notes you may want to quickly jot down, this was my own volition not any feedback. I think the most useful feedback I got was setting the minimum deployment too high i.e. macos 26, and yes that was just because I was too lazy to change all the glass elements, but it turns it was ez (adding themes was harder) so now the minimum deployment is probably 14, though idk how to actually test it on an older os. I just made a new modifier that checked the version once rather than running the check in every single instance of the glass elements..
This one took a while. I made a list generator card because I needed a way to actually remember what exercises to do, but it can be generalised for any sort of random list generation that you may need to do consistently. The hard part was making rules, which basically tell the generator when to change the odds of any specific category or item in general. Initially I was going to make it so that the user would have to use Swift to do it themselves, but that would make it inaccessible to an extent so I decided to just add rules as block based components, though they are now much more restricted.
Hello I’ve added swipe and click gestures to the news card to make it possible to navigate thru the different news articles, which was a good feature that my friend suggested so thanks to him. I’ve also decided what I want to do for v1.2 and possibly even a v2 since it seems like a large enough deal to release a new version 😱 Here’s what i’m thinking: for v1.2: – unit converter – world clock – public ip – random number generator – countdown – calc – qr code generator/link shortener (maybe) – colour picker – word of the day so basically more cards, but theres a reason: for v2 – spaces, basically different layouts of cards that can have different cards – temporary cards, summoning and focusing cards for sort amounts of time and then dismissing them I think this might be a good roadmap for air. I hope you will enjoy using the new air app as much as I will enjoy making it :)
Hi I’ve created a unit conversion card. I initially created my own conversion system which I thought was alright but then I found out that Foundation has built in conversions so I remodelled it to just be a UI front.
So I’ve made new cards now, an RNG card because why not and a configurable world clock. Nothing really too hard with these, tbh they are very simple cards; but they are meant to be so that’s most likely gonna be good for a future update iykwim ;)
Ive added two new both pretty simple cards, an IP card that shows your public ipv4 (and 6 if available) and a qr code generator card for any reachable web address. It took a while to figure out how to generate the qr code but coreimage has a way to help me render it. I’m not really sure how else to add to the IP card, but the QR code card has a bunch of customisability features including changing the colour and style of elements in the qr code whilst still being readable. The card can also export the code as a png :)
I finally got around to adding things to air, since im also doing another ysws thing, but I’ve finally got around to making the temporary card system; it basically acts as a overlay over the normal UI and can be opened using Cmd + K . There’s a search bar to search thru all registered cards. I plan to add spaces either tonight and tomorrow, and then air will be ready to ship again :)
Ive finished spaces, which have configurable keybinds that let users navigate through different layouts of cards. Different spaces can have different names, use different themes and have different cards. Adding this actually let me fix a few bugs that I didn’t know I had, mainly with the keybind recorder where after a keybind was set, if a valid keybind was still typed on the keyboard (after the alleged recording state was over) it would rebind it anyway.
Ships:
air is a lightweight macOS dashboard that collapses your morning routine into one glance. There’s no more opening five different apps just to check the weather, news, and what’s on today. Genuinely made organising my day so much easier since now I have a place I can easily access to see what I have left in the day and just stats about the day in general. The audio player was definitely the hardest part, having to quickly rundown on AppleScript and then also learn how to interact with macOS’s Now Playing system. I ended up finding an external CLI tool called nowplaying-cli by Kirtan Shah and others to pull metadata from it. I’m very, very happy with how this entire project turned, this is to date the best Swift project I’ve ever made by far, but I only plan to improve from here. Air requires a computer running at least macOS 26 and using an arm processor (so Apple Silicon) to run. macOS may also show a security warning on first launch, if it does just right-click the app and choose open to get past it.
air is a lightweight macOS dashboard that collapses your morning routine into one glance. There’s no more opening five different apps just to check the weather, news, and what’s on today. Genuinely made organising my day so much easier since now I have a place I can easily access to see what I have left in the day and just stats about the day in general. Version 2.0.0 is here. Yay! I’ve added a bunch of new cards, those being the list generator, world clock, unit converter, RNG generator, public IP viewer, and a QR code generator. I’ve also added a few new features, those being temporary cards which let you view a single card as a floating overlay without adding it permanently to your dashboard; and spaces which act as separate card lists which support different themes. It was pretty difficult doing figuring out the QR code generator but I eventually made it work well. Air v2 now supports a minimum of macOS Sonoma (14), which is earlier than previous versions so that’s a good thing too. A project demo video will be available to watch on the projects ReadMe if you can’t/don’t want to download it :)...
|
1792842554.6037722
|
1792928954.6037722
|
|
33617
|
OutreachOS by @Athan | Stardance
|
Athan
|
2
|
16.0
|
162
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T06:46:41Z", "hours": 13.0, "multiplier": 9.84, "payout": 126, "blessing": "neutral", "text": "Shipping OutreachOS again after ship #1. I ripped the dark teal “ops console” look and rebuilt the whole app as a sketchbook (paper, doodles, sticky notes) based on my old high-school notebook portfolio. added sticky call scripts, status chips, optional weekly quests, and a one-click Try Demo so nobody hunts for passwords. You can upload the excel sheets and it automatically registers any niches or countries you target +_+ Since then it’s been on a real domain ( https://outreachos.techxtreme.me ) , Premium works via email request (no KYC rabbit hole), and people actually used it. biggest bug from that: Excel import was picky about headers. a sheet with Number instead of Phone Number imported with empty phones and no warning. fixed that — messy labels map now, phones/addresses/maps links get cleaned, and you get a warning if something still looks wrong. UI Was laggy, compressed it and made it still retain the good UI :) Also fixed some bugs in UX experience. What it is (for those who are seeing it first time): Basically its a personal lead vault for cold outreach. dump an Excel sheet, filter by niche/country/status, dial with a sticky script, keep track of who you already hit. You go from bunch of excel rows and columns to a Full Lead manager (as one of the reviewers said :D) how to test (2 min): open https://outreachos.techxtreme.me hit Peek the demo / Sign in as demo Poke the table, flip a status, open the sticky script, try vector view if you have a messy .xlsx, import it (or check /import-guide ) repo: https://github.com/its-techxtreme/OutreachOS", "repo": "https://github.com/its-techxtreme/OutreachOS", "demo": "https://outreachos.techxtreme.me"}, {"ship_num": 2, "ts": "2026-07-15T15:49:31Z", "hours": 3.0, "multiplier": 14.69, "payout": 36, "blessing": "neutral", "text": "This project is called OutreachOS, if you have every tried starting your business or freelancing, there’s always this major question: So how are we going to get clients? Most of the people stumble upon the same idea, which is Cold Calling, Cold messaging or something on the similar side. This is because its the most common way to ACTUALLY get clients without spending funds on running ads, etc. This method, though it works, requires lots of effort. You have to find contact information of people that might me interested in your services, save the numbers, call them, shoot your shot, and much more. But to make it actually feasible, you have to manage a lot of contact and potential client information. I was dealing with the same issue. So, I came up with this Idea, What if I could just feed my excel sheets (like many due to separate batches of calls) have one place to easily search up some client’s info when i need it (like in case of a callback), also be able to export my complete database in Just ONE CLICK to my scraper & Wallah ! there you have it, that’s Exactly what OutreachOS is. Tho I went ahead and added more features to proper categorize each lead based on country, niche, date, etc as well as added to vector view to easily visualise what categories we have been targeting and where we can focus more. Since OutreachOS involves importing contact information, I have made it so that it has a built in authentication system, so only you can log into your database. But if you want to test it out I have created a demo account (it has some restrictions unlike the admin/owner account to prevent destructive use) with some of my old lead contact data, Please use the following credentials to log in : Email: [email protected] Password:OutreachOS@13 Thank you for checking out my project, I am really glad you did ;)", "repo": "https://github.com/its-techxtreme/OutreachOS", "demo": "https://outreachos.techxtreme.me"}]...
|
[{"post_id": 43779, "ts": "202 [{"post_id": 43779, "ts": "2026-08-09T06:37:04Z", "hours": 1.6928, "text": "DEVLOG 6 — small fixes that impacted lags in some devices +_= after some people’s reviews i sat with the real feedback. sketchbook looked cool but felt laggy on some devices. login was annoying. filters were confusing. tutorial glitched on phones. and yeah — a security issue popped up that i had to actually fix, not shrug off. this update is the cleanup after that. what reviews complained about the UI felt heavy (scroll lag, blurry glass, doodles that somehow made the page wheeze) password managers / paste on login were janky niche + country filters felt empty or unclear until you’d imported something demo tutorial broke on mobile / pointed at nothing sometimes security issue found in review — patched and scrubbed what i changed :) speed without killing the vibe. ripped expensive paper grain / blur, dialed back idle vector vault work, kept the margin doodles with cheap CSS bobbing instead of Framer looping forever. doodles stay. lag mostly doesn’t. auth that behaves. forms play nicer with autofill. signup/reset don’t overshare. login + username checks got rate limits. admin denials stay generic. security + small UX. fixed the issue, cleaned public templates, tightened gates. logo in the header finally goes home when you click it. filters + tutorial. niche/country lists make more sense post-import (searchable when long). demo tutorial doesn’t trap you on phones anymore. still sketchbook didn’t “simplify into a boring dashboard.” paper, doodles, sticky scripts — still there. just less of the stuff that made a laptop cry :D"}, {"post_id": 37766, "ts": "2026-07-30T18:01:23Z", "hours": 0.8275, "text": "DEVLOG #5 — messy sheets, finally cleaned I got some real feedback after people poked OutreachOS. Many people loved the Tutorial feature :D one stuck tho: import was too picky about column names. someone uploaded a normal lead sheet with Number instead of Phone Number , and we silently imported leads with empty phones. that’s the opposite of “we clean your messy list.” so #5 is basically: a bug fix where we stop being precious about headers, and actually clean the sheet. flexible headers import now treats common scrapes / hand labels as the same field: phone: Number, Mob, Ph No, Contact, WhatsApp, Cell, Landline… name: Shop, Firm, Brand, Client, Restaurant, Company… maps: Gmaps, Maps Link, Place URL, Source URL, bare goo.gl… address bits: City / State / PIN / Zip get merged when the sheet splits them house / plot / GST “number” columns stay ignored so we don’t invent fake phones. cleaning that actually helps phones: scientific notation from Excel, leading 0 / 91 , multi-value cells ( a / b → first good one) maps: HYPERLINK() formulas and scheme-less short links junk cells: N/A , NULL , blanks stripped if a column still looks like phones but didn’t map, the import result warns instead of pretending everything’s fine other polish since #4 Premium email fallback when no mail app (“copy the draft”) admin can disable accounts with a reason OG preview image fixed + sized to 1200×630 try it- live: https://outreachos.techxtreme.me import guide: import-guide repo: github.com/its-techxtreme/OutreachOS if your sheet still confuses the mapper, send me the header row — that’s how this list grows."}, {"post_id": 33507, "ts": "2026-07-23T14:48:22Z", "hours": 4.0389, "text": "DEVLOG #4 — custom domain, premium, and the boring-but-necessary stuff ig after #3 i thought i was mostly done. then reality showed up with a checklist: put it on a real domain, try to make money somehow without blowing up KYC 😅, stop looking sketchy to Google, and clean the security alerts GitHub kept waving at me =_+ so this update is less “new shiny feature” and more “make it feel like an actual product.” domain OutreachOS now lives at https://outreachos.techxtreme.me (not just the random vercel.app link). feels way better saying that out loud. premium (without card chaos) I wanted paid plans but razorpay needs PAN/KYC and i wasn’t doing that yet. so /pricing is live (₹1499 / $15) and “buy” just opens an email request with your username filled in. i grant Premium from an admin dashboard after payment. not fancy but works i hope so. admin + SEO + accessibility Built a small Google-only admin console for managing users / Premium. submitted the sitemap in Search Console. added an accessibility notice in the footer because i had heard that not inlcuding one can get you sued 😭 😭 security Dependabot was yelling about Next.js (and some other packages). upgraded properly and fixed it :) also tightened a few CodeQL things (sanitization, api key hashing, logging). npm audit is clean on my end now. chatgpt agent the old Custom GPT → API intake isn’t a product feature anymore. excel import is the real path. i left the agent code in the repo as scaffolding if i bring GPT intake back in v2. tiny personal note the sketchbook UI idea didn’t come from a template. i found my 10th-grade japanese paper notebook portfolio while cleaning my laptop files, and it finally clicked — paper notes for contacts just fits outreach :D try it- live: https://outreachos.techxtreme.me demo: peek the demo / sign in as demo (no password typing) repo: github.com/its-techxtreme/OutreachOS if something’s weird, tell me. i’m still polishing the edges, but the core is solid. ready to ship? yeah. for real this time ig. the app is on a proper domain, signup/demo/login work, excel import + vault features are live, Premium has a path that doesn’t depend on unfinished KYC, admin can actually manage accounts, SEO/accessibility aren’t invisible, and the scary dependency alerts got patched instead of shrugged off. not claiming it’s perfect forever — just that OutreachOS is in a state where i’m comfortable saying: ship it. poke holes if you find them."}, {"post_id": 31263, "ts": "2026-07-19T15:13:01Z", "hours": 6.2803, "text": "DEVLOG #3 — ship got rejected so i rebuilt the vibe ok so after #2 i actually shipped OutreachOS and got changes requested pretty fast. shipwrights said: ➤ the css looked like every other ai-made site ➤ add a couple features i came up with to make it more fun ➤ stop making people use demo creds that stung a little but they were right. this whole stretch was just me answering those instead of pretending it was finished :-D the ui glowup :) the biggest thing was the ui. before it was this dark teal ops console look. clean but soulless, like a saas template trying too hard. I tried to think of a idea, then I remembered my high school portfolio, I based in on a notebook pages style ppt theme. i ripped that dead ui out and went sketchbook / doodle for basically the whole app. Now its paper backgrounds, doodle borders, sticky note energy, little hand-drawn characters hanging around. landing is brand first with the constellation field and doodles floating so it feels like mine instead of a product pitch. login and signup match that vibe now too, same paper/doodle language instead of looking bolted on. dashboard feels like a notebook you actually use on call days instead of glass cards stacked forever. lead table is still built for real work but the chrome around it looks hand drawn. vector view (the niche/country constellation graph) is still there, it just fits better now. settings and account got the same treatment so flipping between pages doesnt feel like you teleported into a different app. Basically whole point was stop looking generated. the fun features then the fun features. sticky call scripts were the one i wanted most. you get a general sticky plus niche ones, with placeholders like business, niche, location, phone that you speak through live. edit, save, reset. no ai writing your pitch. just a note that stays while you dial, which sounds small until youre mid call and dont want to lose your place. call statuses got real too: New, Called, No Answer, Callback, Replied, Converted, Archived, and theyre one click chips so youre not hunting a dropdown mid call. also built a quest board (To gamify cold-calling). optional on purpose. opt in when you set a username or later in account, get 3 random quests a week, progress when you move lead statuses. kinda dumb, kinda motivating, weirdly keeps me dialing cuz its easy to get discouraged while cold-calling T_T import path got better too. any niche/country still works, clearer row errors when excel is messy, filters refresh after import, PLUS an import guide page and an excel template so people stop guessing columns. signup / demo (no cred treasure hunt) for the demo creds complaint i added a Try Demo button that just signs you in. shipwrights and anyone bored can open the site and click once. no more copying email/password out of a post. you can also signup normally or continue with google if you want your own vault. also pushed google oauth out of testing only so random google accounts actually work now, which took longer than it should have because google cloud is annoying. tiny invisible stuff nobody screenshots: passwords still go through supabase auth hashed, secrets stay in env, mfa secrets encrypted at rest. boring but i slept better after doing it ^_^ try it site is https://outreachos-online.vercel.app if you try it: open it, hit Try Demo or signup, pick a lead, flip a status chip, open the sticky script, peek at quests. tell me if anything feels weird or still looks template-y. im trying to catch that before i reship. im hyped to ship again. still got a few final polish bits (maybe a student .me domain, google brand verification for the logo, tiny ui cleanup) then im hitting request re-certification. if youre free break it before then. i actually want the feedback this time tbh."}, {"post_id": 26658, "ts": "2026-07-11T16:28:34Z", "hours": 2.3753, "text": "DEVLOG #2 — Almost done + please break it for me Ok so OutreachOS is basically complete. like the main stuff actually works now and im not waking up scared that login or imports are gonna explode. this session was mostly cleanup + making it safe enough to show people: ➤ fixed the admin side so the dashboard shows my username instead of dumping my email on screen (that was lowkey embarrassing) ➤ admin can import excel sheets kinda aggressively (up to 200/min) which is what i needed for bulk lead dumps ➤ added a public demo account so yall can poke around without me handing out admin access ➤ demo is locked down on purpose: 1 upload per hour, and you only see 100 contacts (mixed niches + countries so it still feels real) ➤ also shipped a cleaner url finally site: https://outreachos-online.vercel.app Demo login (pls use this one):–> • email✉️: [email protected] • password: OutreachOS@13 if you try it, tell me what feels weird. broken filters, confusing UI, import failing, whatever. i want people to actually click around and roast it a bit before i call this fully finished. anyway yeah. core app is mostly done. next stuff is just polish from real feedback. go test it if you’re bored."}, {"post_id": 26463, "ts": "2026-07-11T08:40:04Z", "hours": 0.8275, "text": "What is OutreachOS? OutreachOS is a B2B lead management platform for cold outreach. ChatGPT agents collect business data from Google Maps and submit it through a secure API. The system deduplicates leads, stores them in Supabase, and provides a real-time dashboard for filtering, searching, and CSV export. Stack: Next.js 16 · React 19 · Supabase PostgreSQL · Tailwind CSS · shadcn/ui · Vercel Development Timeline Phase 0 — Foundation ✅ Bootstrapped the Next.js project, testing toolchain (Jest + Playwright), Cursor rules, and phase-based workflow. Phase 1 — Database & Agent API ✅ Built the leads schema with maps_url deduplication, pg_trgm fuzzy search, and the first /api/agent/leads endpoint with X-Agent-Secret auth. Phase 2 — Dashboard UI ✅ Shipped the dashboard: filter toolbar, prospect matrix table, metrics panel, pagination, and Stitch-aligned design components. Phase 3 — Data Management✅ Connected the UI to live data — debounced search, multi-filter state, CSV export, URL-synced filters. Hit 85%+ test coverage. Phase 4 — API Integration & ChatGPT Setup ✅ Multi-strategy auth (agent secret + Bearer API keys) Tiered rate limiting, structured logging, Prometheus metrics /api/health and /api/metrics endpoints OpenAPI spec + ChatGPT Custom GPT documentation 190 tests passing · repo published publicly on GitHub Links:- Repo: https://github.com/its-techxtreme/OutreachOS README: https://github.com/its-techxtreme/OutreachOS/blob/develop/README.md Devlog file: https://github.com/its-techxtreme/OutreachOS/blob/develop/docs/DEVLOG.md"}]...
|
Title: OutreachOS by @Athan | Stardance
Devlogs:
Title: OutreachOS by @Athan | Stardance
Devlogs:
What is OutreachOS? OutreachOS is a B2B lead management platform for cold outreach. ChatGPT agents collect business data from Google Maps and submit it through a secure API. The system deduplicates leads, stores them in Supabase, and provides a real-time dashboard for filtering, searching, and CSV export. Stack: Next.js 16 · React 19 · Supabase PostgreSQL · Tailwind CSS · shadcn/ui · Vercel Development Timeline Phase 0 — Foundation ✅ Bootstrapped the Next.js project, testing toolchain (Jest + Playwright), Cursor rules, and phase-based workflow. Phase 1 — Database & Agent API ✅ Built the leads schema with maps_url deduplication, pg_trgm fuzzy search, and the first /api/agent/leads endpoint with X-Agent-Secret auth. Phase 2 — Dashboard UI ✅ Shipped the dashboard: filter toolbar, prospect matrix table, metrics panel, pagination, and Stitch-aligned design components. Phase 3 — Data Management✅ Connected the UI to live data — debounced search, multi-filter state, CSV export, URL-synced filters. Hit 85%+ test coverage. Phase 4 — API Integration & ChatGPT Setup ✅ Multi-strategy auth (agent secret + Bearer API keys) Tiered rate limiting, structured logging, Prometheus metrics /api/health and /api/metrics endpoints OpenAPI spec + ChatGPT Custom GPT documentation 190 tests passing · repo published publicly on GitHub Links:- Repo: https://github.com/its-techxtreme/OutreachOS README: https://github.com/its-techxtreme/OutreachOS/blob/develop/README.md Devlog file: https://github.com/its-techxtreme/OutreachOS/blob/develop/docs/DEVLOG.md
DEVLOG #2 — Almost done + please break it for me Ok so OutreachOS is basically complete. like the main stuff actually works now and im not waking up scared that login or imports are gonna explode. this session was mostly cleanup + making it safe enough to show people: ➤ fixed the admin side so the dashboard shows my username instead of dumping my email on screen (that was lowkey embarrassing) ➤ admin can import excel sheets kinda aggressively (up to 200/min) which is what i needed for bulk lead dumps ➤ added a public demo account so yall can poke around without me handing out admin access ➤ demo is locked down on purpose: 1 upload per hour, and you only see 100 contacts (mixed niches + countries so it still feels real) ➤ also shipped a cleaner url finally site: https://outreachos-online.vercel.app Demo login (pls use this one):–> • email✉️: [email protected] • password: OutreachOS@13 if you try it, tell me what feels weird. broken filters, confusing UI, import failing, whatever. i want people to actually click around and roast it a bit before i call this fully finished. anyway yeah. core app is mostly done. next stuff is just polish from real feedback. go test it if you’re bored.
DEVLOG #3 — ship got rejected so i rebuilt the vibe ok so after #2 i actually shipped OutreachOS and got changes requested pretty fast. shipwrights said: ➤ the css looked like every other ai-made site ➤ add a couple features i came up with to make it more fun ➤ stop making people use demo creds that stung a little but they were right. this whole stretch was just me answering those instead of pretending it was finished :-D the ui glowup :) the biggest thing was the ui. before it was this dark teal ops console look. clean but soulless, like a saas template trying too hard. I tried to think of a idea, then I remembered my high school portfolio, I based in on a notebook pages style ppt theme. i ripped that dead ui out and went sketchbook / doodle for basically the whole app. Now its paper backgrounds, doodle borders, sticky note energy, little hand-drawn characters hanging around. landing is brand first with the constellation field and doodles floating so it feels like mine instead of a product pitch. login and signup match that vibe now too, same paper/doodle language instead of looking bolted on. dashboard feels like a notebook you actually use on call days instead of glass cards stacked forever. lead table is still built for real work but the chrome around it looks hand drawn. vector view (the niche/country constellation graph) is still there, it just fits better now. settings and account got the same treatment so flipping between pages doesnt feel like you teleported into a different app. Basically whole point was stop looking generated. the fun features then the fun features. sticky call scripts were the one i wanted most. you get a general sticky plus niche ones, with placeholders like business, niche, location, phone that you speak through live. edit, save, reset. no ai writing your pitch. just a note that stays while you dial, which sounds small until youre mid call and dont want to lose your place. call statuses got real too: New, Called, No Answer, Callback, Replied, Converted, Archived, and theyre one click chips so youre not hunting a dropdown mid call. also built a quest board (To gamify cold-calling). optional on purpose. opt in when you set a username or later in account, get 3 random quests a week, progress when you move lead statuses. kinda dumb, kinda motivating, weirdly keeps me dialing cuz its easy to get discouraged while cold-calling T_T import path got better too. any niche/country still works, clearer row errors when excel is messy, filters refresh after import, PLUS an import guide page and an excel template so people stop guessing columns. signup / demo (no cred treasure hunt) for the demo creds complaint i added a Try Demo button that just signs you in. shipwrights and anyone bored can open the site and click once. no more copying email/password out of a post. you can also signup normally or continue with google if you want your own vault. also pushed google oauth out of testing only so random google accounts actually work now, which took longer than it should have because google cloud is annoying. tiny invisible stuff nobody screenshots: passwords still go through supabase auth hashed, secrets stay in env, mfa secrets encrypted at rest. boring but i slept better after doing it ^_^ try it site is https://outreachos-online.vercel.app if you try it: open it, hit Try Demo or signup, pick a lead, flip a status chip, open the sticky script, peek at quests. tell me if anything feels weird or still looks template-y. im trying to catch that before i reship. im hyped to ship again. still got a few final polish bits (maybe a student .me domain, google brand verification for the logo, tiny ui cleanup) then im hitting request re-certification. if youre free break it before then. i actually want the feedback this time tbh.
DEVLOG #4 — custom domain, premium, and the boring-but-necessary stuff ig after #3 i thought i was mostly done. then reality showed up with a checklist: put it on a real domain, try to make money somehow without blowing up KYC 😅, stop looking sketchy to Google, and clean the security alerts GitHub kept waving at me =_+ so this update is less “new shiny feature” and more “make it feel like an actual product.” domain OutreachOS now lives at https://outreachos.techxtreme.me (not just the random vercel.app link). feels way better saying that out loud. premium (without card chaos) I wanted paid plans but razorpay needs PAN/KYC and i wasn’t doing that yet. so /pricing is live (₹1499 / $15) and “buy” just opens an email request with your username filled in. i grant Premium from an admin dashboard after payment. not fancy but works i hope so. admin + SEO + accessibility Built a small Google-only admin console for managing users / Premium. submitted the sitemap in Search Console. added an accessibility notice in the footer because i had heard that not inlcuding one can get you sued 😭 😭 security Dependabot was yelling about Next.js (and some other packages). upgraded properly and fixed it :) also tightened a few CodeQL things (sanitization, api key hashing, logging). npm audit is clean on my end now. chatgpt agent the old Custom GPT → API intake isn’t a product feature anymore. excel import is the real path. i left the agent code in the repo as scaffolding if i bring GPT intake back in v2. tiny personal note the sketchbook UI idea didn’t come from a template. i found my 10th-grade japanese paper notebook portfolio while cleaning my laptop files, and it finally clicked — paper notes for contacts just fits outreach :D try it- live: https://outreachos.techxtreme.me demo: peek the demo / sign in as demo (no password typing) repo: github.com/its-techxtreme/OutreachOS if something’s weird, tell me. i’m still polishing the edges, but the core is solid. ready to ship? yeah. for real this time ig. the app is on a proper domain, signup/demo/login work, excel import + vault features are live, Premium has a path that doesn’t depend on unfinished KYC, admin can actually manage accounts, SEO/accessibility aren’t invisible, and the scary dependency alerts got patched instead of shrugged off. not claiming it’s perfect forever — just that OutreachOS is in a state where i’m comfortable saying: ship it. poke holes if you find them.
DEVLOG #5 — messy sheets, finally cleaned I got some real feedback after people poked OutreachOS. Many people loved the Tutorial feature :D one stuck tho: import was too picky about column names. someone uploaded a normal lead sheet with Number instead of Phone Number , and we silently imported leads with empty phones. that’s the opposite of “we clean your messy list.” so #5 is basically: a bug fix where we stop being precious about headers, and actually clean the sheet. flexible headers import now treats common scrapes / hand labels as the same field: phone: Number, Mob, Ph No, Contact, WhatsApp, Cell, Landline… name: Shop, Firm, Brand, Client, Restaurant, Company… maps: Gmaps, Maps Link, Place URL, Source URL, bare goo.gl… address bits: City / State / PIN / Zip get merged when the sheet splits them house / plot / GST “number” columns stay ignored so we don’t invent fake phones. cleaning that actually helps phones: scientific notation from Excel, leading 0 / 91 , multi-value cells ( a / b → first good one) maps: HYPERLINK() formulas and scheme-less short links junk cells: N/A , NULL , blanks stripped if a column still looks like phones but didn’t map, the import result warns instead of pretending everything’s fine other polish since #4 Premium email fallback when no mail app (“copy the draft”) admin can disable accounts with a reason OG preview image fixed + sized to 1200×630 try it- live: https://outreachos.techxtreme.me import guide: import-guide repo: github.com/its-techxtreme/OutreachOS if your sheet still confuses the mapper, send me the header row — that’s how this list grows.
DEVLOG 6 — small fixes that impacted lags in some devices +_= after some people’s reviews i sat with the real feedback. sketchbook looked cool but felt laggy on some devices. login was annoying. filters were confusing. tutorial glitched on phones. and yeah — a security issue popped up that i had to actually fix, not shrug off. this update is the cleanup after that. what reviews complained about the UI felt heavy (scroll lag, blurry glass, doodles that somehow made the page wheeze) password managers / paste on login were janky niche + country filters felt empty or unclear until you’d imported something demo tutorial broke on mobile / pointed at nothing sometimes security issue found in review — patched and scrubbed what i changed :) speed without killing the vibe. ripped expensive paper grain / blur, dialed back idle vector vault work, kept the margin doodles with cheap CSS bobbing instead of Framer looping forever. doodles stay. lag mostly doesn’t. auth that behaves. forms play nicer with autofill. signup/reset don’t overshare. login + username checks got rate limits. admin denials stay generic. security + small UX. fixed the issue, cleaned public templates, tightened gates. logo in the header finally goes home when you click it. filters + tutorial. niche/country lists make more sense post-import (searchable when long). demo tutorial doesn’t trap you on phones anymore. still sketchbook didn’t “simplify into a boring dashboard.” paper, doodles, sticky scripts — still there. just less of the stuff that made a laptop cry :D
Ships:
This project is called OutreachOS, if you have every tried starting your business or freelancing, there’s always this major question: So how are we going to get clients? Most of the people stumble upon the same idea, which is Cold Calling, Cold messaging or something on the similar side. This is because its the most common way to ACTUALLY get clients without spending funds on running ads, etc. This method, though it works, requires lots of effort. You have to find contact information of people that might me interested in your services, save the numbers, call them, shoot your shot, and much more. But to make it actually feasible, you have to manage a lot of contact and potential client information. I was dealing with the same issue. So, I came up with this Idea, What if I could just feed my excel sheets (like many due to separate batches of calls) have one place to easily search up some client’s info when i need it (like in case of a callback), also be able to export my complete database in Just ONE CLICK to my scraper & Wallah ! there you have it, that’s Exactly what OutreachOS is. Tho I went ahead and added more features to proper categorize each lead based on country, niche, date, etc as well as added to vector view to easily visualise what categories we have been targeting and where we can focus more. Since OutreachOS involves importing contact information, I have made it so that it has a built in authentication system, so only you can log into your database. But if you want to test it out I have created a demo account (it has some restrictions unlike the admin/owner account to prevent destructive use) with some of my old lead contact data, Please use the following credentials to log in : Email: [email protected] Password:OutreachOS@13 Thank you for checking out my project, I am really glad you did ;)
Shipping OutreachOS again after ship #1. I ripped the dark teal “ops console” look and rebuilt the whole app as a sketchbook (paper, doodles, sticky notes) based on my old high-school notebook portfolio. added sticky call scripts, status chips, optional weekly quests, and a one-click Try Demo so nobody hunts for passwords. You can upload the excel sheets and it automatically registers any niches or countries you target +_+ Since then it’s been on a real domain ( https://outreachos.techxtreme.me ) , Premium works via email request (no KYC rabbit hole), and people actually used it. biggest bug from that: Excel import was picky about headers. a sheet with Number instead of Phone Number imported with empty phones and no warning. fixed that — messy labels map now, phones/addresses/maps links get cleaned, and you get a warning if something still looks wrong. UI Was laggy, compressed it and made it still retain the good UI :) Also fixed some bugs in UX experience. What it is (for those who are seeing it first time): Basically its a personal lead vault for cold outreach. dump an Excel sheet, filter by niche/country/status, dial with a sticky script, keep track of who you already hit. You go from bunch of excel rows and columns to a Full Lead manager (as one of the reviewers said :D) how to test (2 min): open https://outreachos.techxtreme.me hit Peek the demo / Sign in as demo Poke the table, flip a status, open the sticky script, try vector view if you have a messy .xlsx, import it (or check /import-guide ) repo: https://github.com/its-techxtreme/OutreachOS...
|
1792875210.0856667
|
1793739210.0856667
|
|
33771
|
AtomSim by @yaasshh | Stardance
|
yaasshh
|
2
|
71.62
|
847
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-05T11:10:43Z", "hours": 12.0, "multiplier": 13.8, "payout": 163, "blessing": "neutral", "text": "AtomSim is a website I built that lets you actually see what an atom looks like. You pick an element, or hydrogen, and pick which electron shell you want to look at. Then it draws it. Not a cartoon of dots going around a circle like the diagrams in school, the real shape, the cloud where the electron actually is. Some of them look like spheres, some look like dumbbells, some look like weird four leaf clovers. All of that is real, it just falls out of the math. You can spin it around, slice it in half, look at it as a graph instead, or look at the colored lines of light the atom gives off when it gets hot. That last one is how we know what stars are made of, and you can watch it happen. The part I care about most is that it never fakes anything. Every single number on the screen carries a label saying how it was made. Some are exact, straight from the equations. Some are computed numerically with an error bar attached. Some are approximations, and it says which physical effects it left out. And a few are deliberate “what if” experiments, like turning off the rule that stops two electrons sitting in the same place, just to see the atom collapse. Those are labeled too. So if a picture is pretty rather than true, the app tells you. I wanted something a curious fifteen year old could poke at for an hour and come away with a correct picture in their head, not a comfortable wrong one. It runs in a browser, works on a phone, and every view has its own link you can share. PS: It also has mobile view now!", "repo": "https://github.com/yaasshh09/AtomSim", "demo": "https://atomsim.fly.dev"}, {"ship_num": 2, "ts": "2026-08-07T18:00:05Z", "hours": 58.0, "multiplier": 18.43, "payout": 684, "blessing": "neutral", "text": "Atom Sim is a browser app that solves atoms from scratch and shows you the result. Hydrogen comes out of closed-form math, real atoms like carbon and argon come out of a Hartree-Fock solver I wrote, and you can look at any of them as a 3D electron cloud, a 2D slice, a radial plot, an energy-level diagram or an emission spectrum. You can also break physics on purpose: switch off the Pauli exclusion principle, switch off electron exchange, or type in your own potential V(r) and see what kind of atom falls out. The rule I built everything around is that the model never quietly lies. Every number carries a tag saying how it was made: exact, numerical, approximation, counterfactual, or just a visual choice. That tag follows the number from the solver all the way to the label on screen. What was challenging Hartree-Fock was brutal. The angular coefficients in the Fock operator are easy to get slightly wrong, and when you do, the solver still converges and hands you smooth, beautiful, completely wrong orbitals. Nothing crashes, nothing warns you. I had to re-derive the algebra instead of nudging numbers until a benchmark matched. Error bars were the other trap. Mine looked great for a while and were simply lying, because the real error was coming from the box size, not the grid spacing I was measuring. Argon also took about an hour on a uniform grid until I moved to an exponential mesh, which cut it to seconds. What I’m proud of That it’s honest. Plenty of simulators draw a pretty orbital and say nothing about where it came from. Mine tells you, and the tests enforce it. The spectra are checked against real NIST data inside the test suite, so a physics regression fails CI rather than shipping quietly. How to test it It’s live at https://atomsim.fly.dev . The server sleeps when nobody is using it, so the very first load can take around 15 seconds. After that it’s quick. Good things to try: pick n=3, l=1 and rotate the cloud, then flip to Plane view for the cross-section. Switch the element to argon. Open a guided tour if you want the short version. Every view is a shareable URL, so you can link someone to an exact state.", "repo": "https://github.com/yaasshh09/AtomSim", "demo": "https://atomsim.fly.dev"}]...
|
[{"post_id": 79261, "ts": "202 [{"post_id": 79261, "ts": "2026-10-13T07:33:52Z", "hours": 1.625, "text": "Devlog #8 This update was mostly about cleaning things up. Firstly, I went through the whole site with a checklist of things that make websites feel cheap or fake. I took out the gradients, made the rounded pill-shaped buttons and badges square, and replaced an emoji warning icon with a normal one. Then I added a Terms page and a Privacy page, linked at the bottom of the side panel. The privacy page explains what the app does and doesn’t track, which isn’t much. All of this was to remove any “ALL AI” msgs ive received I also changed the license. AtomSim used to be MIT, which meant anyone could take it and sell it. Now it’s CC BY-NC 4.0, so people can still use it, share it and change it, as long as they credit me and don’t make money off it. Every font on the site is now Poppins, and it’s bundled with the app so it doesn’t have to load from Google. After that I reread all the text on the site and in the README and fixed anything that sounded robotic. That included a few curly quotes and one sentence that sounded like a press release. I also rewrote the line explaining “provenance” so it just says what it means. All of that is live on the site now. Next up is making the atom move. If you mix two states, the electron cloud sloshes back and forth at the exact frequency of the light the atom gives off. I’ve planned it out and I’m starting on it next. I also wrote down a big list of other ideas for later."}, {"post_id": 62105, "ts": "2026-09-05T11:07:13Z", "hours": 5.0147, "text": "DEVLOG : 7? Since that last update, the cleanup turned into actual features. I finished the frontend narrator pass. Every disclosure string, every physics note, every view intro is now plain prose instead of the app talking about itself in first person. Then I went after the parts of the app that were just annoying to use. Plots are zoomable now. Wheel to zoom, drag to pan, on all five analytic views. I also built a small notation layer so the ASCII the engine emits gets typeset properly at render time, subscripts and superscripts where they belong, without dragging in a whole math library. The big one was mobile. The app used to just refuse to render below a certain width. Now it works down to 320px: a proper mobile shell, view tabs instead of a sidebar list, controls that collapse, and per-view width floors so nothing spills sideways. That took a lot of small fixes I did not expect, a fixed SVG viewBox that hid fixed-width text, and an overflow rule that was already scrolling the page sideways before I touched anything. After that, the URL got a real history. Back and Forward actually work now, and moving between orbitals pushes a history entry while flipping a display toggle just replaces one. Added a copy-link button and keyboard shortcuts for stepping through n, l, m and switching views. Last thing, the title is now just AtomSim. The tagline was doing nothing for anyone."}, {"post_id": 61040, "ts": "2026-09-03T19:03:50Z", "hours": 6.8269, "text": "Devlog #5 or 6??? Since the site went live, most of the work has been cleanup rather than new physics. The whole app used to talk in first person. Every explanation said “I compute this” or “what I’m showing you.” It read like the code was narrating itself, which was odd. So I went through the entire Python engine module by module and rewrote it in plain technical prose. That’s done. Then I started on the frontend, which had way more of it. The disclosure text, the physics notes under each equation, the view intros. That’s still in progress. there were 2 things I had to be extra careful about. Some of those strings are checked word-for-word by tests, so rewording one has potential to break complete the build by itself. In addition, I also tidied the repo layout for public viewing, fixed a deploy pipeline failure, and added privacy-safe visitor counting. Right now i’m cutting padding, and pitching it so a high schooler can follow it without boring a physics grad."}, {"post_id": 42762, "ts": "2026-08-07T17:14:45Z", "hours": 7.2728, "text": "Devlog: Phase 30 to now Phase 30, Instrument frontend. Redesigned the UI to read like a physics instrument. Bundled the fonts, dropped four fields nothing actually measured, and learned that text-transform: uppercase turns 3d into 3D and α² into A², so uppercase is now confined to section headings only. Phase 31, Guided tours. Added walkthroughs that drive the app for you. Nearly shipped a tour that quoted the wrong hydrogen energy because it skipped reduced mass, and fixed two spotlight rings that measured their target before layout settled. Absorption band cleanup. Abutting sub-pixel SVG rects were drawing lines that weren’t in the data. Settled the mean vs deepest-per-column question and fixed decade ticks that failed at both ends of the axis. Housekeeping. Moved specs and plans out to docs/specs and docs/plans. Personal ignores went into .git/info/exclude so no tracked file carries tooling names. Rate limiting. Sized the burst from the app’s real fan-out per action rather than from click counts. The n=6 row plus an auto-refetch was quietly doubling the load. Web hosting. Containerized and deployed to Fly.io as a single process. Cold start from a snapshot is about 1.6s, occasionally up to 22s if the snapshot gets discarded. Argon solves in 2.8s on the deployed box against 1.4s locally. Suspended machines cost nothing, so occasional use stays near a dollar or two a month. Also added rate-limiter logging that identifies refused clients, and confirmed the proxy overwrites forged IP headers, so spoofing doesn’t get you past the limit."}, {"post_id": 41525, "ts": "2026-08-05T19:44:43Z", "hours": 10.8628, "text": "DevLog #3: New Frontend, Plus Small Bits Phase 22 to now. P22, distinguishable electrons. Turned off exchange in Hartree-Fock. Electrons still repel, they just stop being identical. Marked COUNTERFACTUAL. Helium came back exactly zero, so it was gone. P24, Pauli off. Dropped the occupancy cap and everything falls into the 1s. Argon becomes 1s^18 and the periodic table stops existing. P22’s slow convergence was shells, not exchange. P25, isosurfaces. Never size a box on the grid you draw on. The fraction error bar is blind to the box. A 90% p orbital is one piece, not two lobes. P26, HF in 3D. Now in Cloud, Plane, Radial and Surface. Whole-atom and one-orbital radii move opposite ways. Fidelity tiers were literals under the solve. P27, total density. Added D(r), the shape both models describe. A uniform grid steps over the 1s peak, so the test asserts convergence rate, not tolerance. P28, screened density. GSZ gets its own D(r). A density needs its own box. A log axis quietly breaks area = electron count. P29, comparison. Both models on one axis, gap measured. Caught a noise floor, a real number printing as zero, and a wrong caption. Sulfur, chlorine. Split ATOM_KEYS into identity and capability. Derive flags, never pass them. A client check exposed a deep-link race. P30, instrument frontend. Fonts bundled for offline. –edge is a border colour, never a fill. Dropped four fields with no engine behind them. Uppercase turned 3d into 3D, so headings only now. Plot polish. Zoomed line profile labels offsets from window centre, since absolute wavelengths printed the same string six times. Drew xyz axes through the cloud. Absorption, curve of growth. Stopped a zero equivalent width stretching the axis 300 decades. The band drew anti-aliasing seams as absorption lines where transmission was really 0.98 to 1.00. It now bins one column per unit and draws the deepest sample, beside what a real detector pixel would see."}, {"post_id": 38322, "ts": "2026-07-31T17:22:25Z", "hours": 11.9403, "text": "DevLog: Phase 18 to now P18, line shapes. Real lines are not infinitely thin spikes. Atoms move (Doppler) and get jostled by neighbours (pressure), so each line spreads into a bell shape, a Voigt profile. I added that, plus a zoom so you can look at one line up close. The useful trick was a flux-closure check: whatever area a line has before broadening, it has to still have after. That caught two grid bugs that were invisible on screen. P19, optical depth. Until now every line acted as if light escaped freely. In a thick gas strong lines saturate, so doubling the atoms stops doubling the brightness. That is the curve of growth. Lesson: decide which regime a line sits in from the physics, not by eyeballing the slope. Also the wavelength window has to widen as the column thickens, or you clip the wings you are trying to measure. P20, absorption. The mirror of emission. Shine a continuum through the gas, look at what is missing. The trap was that 14 hydrogen lines land on only 6 distinct wavelengths, so matching a profile to its source line by wavelength quietly pairs the wrong ones. I key on the transition instead. P21, Hartree-Fock. The big one. Instead of a fitted screening formula, each electron feels a potential built from all the others, solved over and over until it stops changing. That gets me sulfur and chlorine, which the old model could not touch, plus ions with no preset. Two things worth remembering: the solver’s own error bar was lying to me and needed re-deriving, and what made convergence fast was not a clever algorithm, it was the right mixing constant. P22, cleanup. Made features honest about where they apply. The classical ghost and the force-law lab only make sense for one-electron atoms, so they explain themselves now instead of erroring on a screened atom. Fixed He+ breaking every API call, because the “+” was never URL-encoded. Unknown systems say so instead of spinning. Right now I am fixing hint text that escapes its panel on narrow screens."}, {"post_id": 35332, "ts": "2026-07-26T17:27:28Z", "hours": 27.8683, "text": "Atom_Sim: Physics Simulator Dev Log An atom simulator built on one rule: Every number has a label ( exact , numerical , approximation , counterfactual , or visual_liberty ). Unlabeled numbers are treated as bugs. Stack: Python physics engine -> React + Three.js frontend. Phase Logs Phases 1–3: The Hydrogen Foundation Hydrogen Core: Uses exact math for energies and wavefunctions. Validates its electron clouds using statistical KS tests. Numerical Solver: Solves the Schrödinger equation for custom shapes. It calculates its own accuracy by halving the grid spacing. Constants Lab: Allows changing fundamental constants (hbar, e, c). It proves that changing individual units changes nothing if the ratio between them stays the same. Classical Ghost: Shows old Bohr orbits collapsing, proving why classical physics cannot explain atoms. Phases 4–6: Altered Potential & Real Atoms Fake Physics: Simulates universes with non-standard forces (like Yukawa or power laws) under a clear warning banner. Screened Atoms: Models elements from Helium to Argon using historic 1974 data. If an element (like Sulfur or Chlorine) lacks clean data, it is left out entirely rather than guessed. Phases 7–12: Fields, Relativity & Nuance Dirac Math: Tracks exact relativistic shifts and highlights what the math misses (the Lamb shift). External Fields: Simulates atoms splitting under magnetic fields (Zeeman effect) and electric fields (Stark effect). Hyperfine: Models the 21 cm hydrogen line using the precise electron-to-proton mass ratio. Phases 13–17: Light, Speed & Thermodynamics Fast Math: Uses a custom integration trick to calculate atomic lifetimes exactly and 13x faster. Doublet Ratios: Proves via quantum math (Wigner 6j) why certain spectral lines are twice as bright as others. Heat Sliders: Combines Saha and Boltzmann equations to turn raw rates into actual visible light. Dragging the temperature slider smoothly hands Lyman lines over to Balmer lines. Phase 18: Line Profiles (Current Work) Replaces infinitely sharp lines with realistic Voigt profiles using three combined factors: Natural Width: A Lorentzian shape caused by how fast an excited state decays. Doppler Width: A Gaussian shape caused by thermal motion. Works perfectly for normal hydrogen, positronium, and muonic hydrogen. Instrumental Width: A Gaussian blur based on the user’s chosen telescope or sensor resolution. Note on Missing Physics: Collision/pressure broadening is not simulated. Instead of a text disclaimer, the app calculates how large that missing effect would be and prints the raw margin of error right next to the chart. Core Development Rules No Smoke Tests: Every physics feature must pass an automated math test. No Live Fetches: All reference data is saved locally with a hard citation. No Silent Approximations: If the code cannot calculate something honestly, it stops and prints exactly what data is missing."}]...
|
Title: AtomSim by @yaasshh | Stardance
Devlogs:
A Title: AtomSim by @yaasshh | Stardance
Devlogs:
Atom_Sim: Physics Simulator Dev Log An atom simulator built on one rule: Every number has a label ( exact , numerical , approximation , counterfactual , or visual_liberty ). Unlabeled numbers are treated as bugs. Stack: Python physics engine -> React + Three.js frontend. Phase Logs Phases 1–3: The Hydrogen Foundation Hydrogen Core: Uses exact math for energies and wavefunctions. Validates its electron clouds using statistical KS tests. Numerical Solver: Solves the Schrödinger equation for custom shapes. It calculates its own accuracy by halving the grid spacing. Constants Lab: Allows changing fundamental constants (hbar, e, c). It proves that changing individual units changes nothing if the ratio between them stays the same. Classical Ghost: Shows old Bohr orbits collapsing, proving why classical physics cannot explain atoms. Phases 4–6: Altered Potential & Real Atoms Fake Physics: Simulates universes with non-standard forces (like Yukawa or power laws) under a clear warning banner. Screened Atoms: Models elements from Helium to Argon using historic 1974 data. If an element (like Sulfur or Chlorine) lacks clean data, it is left out entirely rather than guessed. Phases 7–12: Fields, Relativity & Nuance Dirac Math: Tracks exact relativistic shifts and highlights what the math misses (the Lamb shift). External Fields: Simulates atoms splitting under magnetic fields (Zeeman effect) and electric fields (Stark effect). Hyperfine: Models the 21 cm hydrogen line using the precise electron-to-proton mass ratio. Phases 13–17: Light, Speed & Thermodynamics Fast Math: Uses a custom integration trick to calculate atomic lifetimes exactly and 13x faster. Doublet Ratios: Proves via quantum math (Wigner 6j) why certain spectral lines are twice as bright as others. Heat Sliders: Combines Saha and Boltzmann equations to turn raw rates into actual visible light. Dragging the temperature slider smoothly hands Lyman lines over to Balmer lines. Phase 18: Line Profiles (Current Work) Replaces infinitely sharp lines with realistic Voigt profiles using three combined factors: Natural Width: A Lorentzian shape caused by how fast an excited state decays. Doppler Width: A Gaussian shape caused by thermal motion. Works perfectly for normal hydrogen, positronium, and muonic hydrogen. Instrumental Width: A Gaussian blur based on the user’s chosen telescope or sensor resolution. Note on Missing Physics: Collision/pressure broadening is not simulated. Instead of a text disclaimer, the app calculates how large that missing effect would be and prints the raw margin of error right next to the chart. Core Development Rules No Smoke Tests: Every physics feature must pass an automated math test. No Live Fetches: All reference data is saved locally with a hard citation. No Silent Approximations: If the code cannot calculate something honestly, it stops and prints exactly what data is missing.
DevLog: Phase 18 to now P18, line shapes. Real lines are not infinitely thin spikes. Atoms move (Doppler) and get jostled by neighbours (pressure), so each line spreads into a bell shape, a Voigt profile. I added that, plus a zoom so you can look at one line up close. The useful trick was a flux-closure check: whatever area a line has before broadening, it has to still have after. That caught two grid bugs that were invisible on screen. P19, optical depth. Until now every line acted as if light escaped freely. In a thick gas strong lines saturate, so doubling the atoms stops doubling the brightness. That is the curve of growth. Lesson: decide which regime a line sits in from the physics, not by eyeballing the slope. Also the wavelength window has to widen as the column thickens, or you clip the wings you are trying to measure. P20, absorption. The mirror of emission. Shine a continuum through the gas, look at what is missing. The trap was that 14 hydrogen lines land on only 6 distinct wavelengths, so matching a profile to its source line by wavelength quietly pairs the wrong ones. I key on the transition instead. P21, Hartree-Fock. The big one. Instead of a fitted screening formula, each electron feels a potential built from all the others, solved over and over until it stops changing. That gets me sulfur and chlorine, which the old model could not touch, plus ions with no preset. Two things worth remembering: the solver’s own error bar was lying to me and needed re-deriving, and what made convergence fast was not a clever algorithm, it was the right mixing constant. P22, cleanup. Made features honest about where they apply. The classical ghost and the force-law lab only make sense for one-electron atoms, so they explain themselves now instead of erroring on a screened atom. Fixed He+ breaking every API call, because the “+” was never URL-encoded. Unknown systems say so instead of spinning. Right now I am fixing hint text that escapes its panel on narrow screens.
DevLog #3: New Frontend, Plus Small Bits Phase 22 to now. P22, distinguishable electrons. Turned off exchange in Hartree-Fock. Electrons still repel, they just stop being identical. Marked COUNTERFACTUAL. Helium came back exactly zero, so it was gone. P24, Pauli off. Dropped the occupancy cap and everything falls into the 1s. Argon becomes 1s^18 and the periodic table stops existing. P22’s slow convergence was shells, not exchange. P25, isosurfaces. Never size a box on the grid you draw on. The fraction error bar is blind to the box. A 90% p orbital is one piece, not two lobes. P26, HF in 3D. Now in Cloud, Plane, Radial and Surface. Whole-atom and one-orbital radii move opposite ways. Fidelity tiers were literals under the solve. P27, total density. Added D(r), the shape both models describe. A uniform grid steps over the 1s peak, so the test asserts convergence rate, not tolerance. P28, screened density. GSZ gets its own D(r). A density needs its own box. A log axis quietly breaks area = electron count. P29, comparison. Both models on one axis, gap measured. Caught a noise floor, a real number printing as zero, and a wrong caption. Sulfur, chlorine. Split ATOM_KEYS into identity and capability. Derive flags, never pass them. A client check exposed a deep-link race. P30, instrument frontend. Fonts bundled for offline. –edge is a border colour, never a fill. Dropped four fields with no engine behind them. Uppercase turned 3d into 3D, so headings only now. Plot polish. Zoomed line profile labels offsets from window centre, since absolute wavelengths printed the same string six times. Drew xyz axes through the cloud. Absorption, curve of growth. Stopped a zero equivalent width stretching the axis 300 decades. The band drew anti-aliasing seams as absorption lines where transmission was really 0.98 to 1.00. It now bins one column per unit and draws the deepest sample, beside what a real detector pixel would see.
Devlog: Phase 30 to now Phase 30, Instrument frontend. Redesigned the UI to read like a physics instrument. Bundled the fonts, dropped four fields nothing actually measured, and learned that text-transform: uppercase turns 3d into 3D and α² into A², so uppercase is now confined to section headings only. Phase 31, Guided tours. Added walkthroughs that drive the app for you. Nearly shipped a tour that quoted the wrong hydrogen energy because it skipped reduced mass, and fixed two spotlight rings that measured their target before layout settled. Absorption band cleanup. Abutting sub-pixel SVG rects were drawing lines that weren’t in the data. Settled the mean vs deepest-per-column question and fixed decade ticks that failed at both ends of the axis. Housekeeping. Moved specs and plans out to docs/specs and docs/plans. Personal ignores went into .git/info/exclude so no tracked file carries tooling names. Rate limiting. Sized the burst from the app’s real fan-out per action rather than from click counts. The n=6 row plus an auto-refetch was quietly doubling the load. Web hosting. Containerized and deployed to Fly.io as a single process. Cold start from a snapshot is about 1.6s, occasionally up to 22s if the snapshot gets discarded. Argon solves in 2.8s on the deployed box against 1.4s locally. Suspended machines cost nothing, so occasional use stays near a dollar or two a month. Also added rate-limiter logging that identifies refused clients, and confirmed the proxy overwrites forged IP headers, so spoofing doesn’t get you past the limit.
Devlog #5 or 6??? Since the site went live, most of the work has been cleanup rather than new physics. The whole app used to talk in first person. Every explanation said “I compute this” or “what I’m showing you.” It read like the code was narrating itself, which was odd. So I went through the entire Python engine module by module and rewrote it in plain technical prose. That’s done. Then I started on the frontend, which had way more of it. The disclosure text, the physics notes under each equation, the view intros. That’s still in progress. there were 2 things I had to be extra careful about. Some of those strings are checked word-for-word by tests, so rewording one has potential to break complete the build by itself. In addition, I also tidied the repo layout for public viewing, fixed a deploy pipeline failure, and added privacy-safe visitor counting. Right now i’m cutting padding, and pitching it so a high schooler can follow it without boring a physics grad.
DEVLOG : 7? Since that last update, the cleanup turned into actual features. I finished the frontend narrator pass. Every disclosure string, every physics note, every view intro is now plain prose instead of the app talking about itself in first person. Then I went after the parts of the app that were just annoying to use. Plots are zoomable now. Wheel to zoom, drag to pan, on all five analytic views. I also built a small notation layer so the ASCII the engine emits gets typeset properly at render time, subscripts and superscripts where they belong, without dragging in a whole math library. The big one was mobile. The app used to just refuse to render below a certain width. Now it works down to 320px: a proper mobile shell, view tabs instead of a sidebar list, controls that collapse, and per-view width floors so nothing spills sideways. That took a lot of small fixes I did not expect, a fixed SVG viewBox that hid fixed-width text, and an overflow rule that was already scrolling the page sideways before I touched anything. After that, the URL got a real history. Back and Forward actually work now, and moving between orbitals pushes a history entry while flipping a display toggle just replaces one. Added a copy-link button and keyboard shortcuts for stepping through n, l, m and switching views. Last thing, the title is now just AtomSim. The tagline was doing nothing for anyone.
Devlog #8 This update was mostly about cleaning things up. Firstly, I went through the whole site with a checklist of things that make websites feel cheap or fake. I took out the gradients, made the rounded pill-shaped buttons and badges square, and replaced an emoji warning icon with a normal one. Then I added a Terms page and a Privacy page, linked at the bottom of the side panel. The privacy page explains what the app does and doesn’t track, which isn’t much. All of this was to remove any “ALL AI” msgs ive received I also changed the license. AtomSim used to be MIT, which meant anyone could take it and sell it. Now it’s CC BY-NC 4.0, so people can still use it, share it and change it, as long as they credit me and don’t make money off it. Every font on the site is now Poppins, and it’s bundled with the app so it doesn’t have to load from Google. After that I reread all the text on the site and in the README and fixed anything that sounded robotic. That included a few curly quotes and one sentence that sounded like a press release. I also rewrote the line explaining “provenance” so it just says what it means. All of that is live on the site now. Next up is making the atom move. If you mix two states, the electron cloud sloshes back and forth at the exact frequency of the light the atom gives off. I’ve planned it out and I’m starting on it next. I also wrote down a big list of other ideas for later.
Ships:
Atom Sim is a browser app that solves atoms from scratch and shows you the result. Hydrogen comes out of closed-form math, real atoms like carbon and argon come out of a Hartree-Fock solver I wrote, and you can look at any of them as a 3D electron cloud, a 2D slice, a radial plot, an energy-level diagram or an emission spectrum. You can also break physics on purpose: switch off the Pauli exclusion principle, switch off electron exchange, or type in your own potential V(r) and see what kind of atom falls out. The rule I built everything around is that the model never quietly lies. Every number carries a tag saying how it was made: exact, numerical, approximation, counterfactual, or just a visual choice. That tag follows the number from the solver all the way to the label on screen. What was challenging Hartree-Fock was brutal. The angular coefficients in the Fock operator are easy to get slightly wrong, and when you do, the solver still converges and hands you smooth, beautiful, completely wrong orbitals. Nothing crashes, nothing warns you. I had to re-derive the algebra instead of nudging numbers until a benchmark matched. Error bars were the other trap. Mine looked great for a while and were simply lying, because the real error was coming from the box size, not the grid spacing I was measuring. Argon also took about an hour on a uniform grid until I moved to an exponential mesh, which cut it to seconds. What I’m proud of That it’s honest. Plenty of simulators draw a pretty orbital and say nothing about where it came from. Mine tells you, and the tests enforce it. The spectra are checked against real NIST data inside the test suite, so a physics regression fails CI rather than shipping quietly. How to test it It’s live at https://atomsim.fly.dev . The server sleeps when nobody is using it, so the very first load can take around 15 seconds. After that it’s quick. Good things to try: pick n=3, l=1 and rotate the cloud, then flip to Plane view for the cross-section. Switch the element to argon. Open a guided tour if you want the short version. Every view is a shareable URL, so you can link someone to an exact state.
AtomSim is a website I built that lets you actually see what an atom looks like. You pick an element, or hydrogen, and pick which electron shell you want to look at. Then it draws it. Not a cartoon of dots going around a circle like the diagrams in school, the real shape, the cloud where the electron actually is. Some of them look like spheres, some look like dumbbells, some look like weird four leaf clovers. All of that is real, it just falls out of the math. You can spin it around, slice it in half, look at it as a graph instead, or look at the colored lines of light the atom gives off when it gets hot. That last one is how we know what stars are made of, and you can watch it happen. The part I care about most is that it never fakes anything. Every single number on the screen carries a label saying how it was made. Some are exact, straight from the equations. Some are computed numerically with an error bar attached. Some are approximations, and it says which physical effects it left out. And a few are deliberate “what if” experiments, like turning off the rule that stops two electrons sitting in the same place, just to see the atom collapse. Those are labeled too. So if a picture is pretty rather than true, the app tells you. I wanted something a curious fifteen year old could poke at for an hour and come away with a correct picture in their head, not a comfortable wrong one. It runs in a browser, works on a phone, and every view has its own link you can share. PS: It also has mobile view now!...
|
1792839099.172605
|
1792925499.172605
|
|
33903
|
Senior Fitness Scheduler by @cognitayohan | Starda Senior Fitness Scheduler by @cognitayohan | Stardance...
|
cognitayohan
|
2
|
4.0
|
38
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-27T03:38:56Z", "hours": 3.0, "multiplier": 11.31, "payout": 31, "blessing": "neutral", "text": "Ship #2: After reviewing community requests, I added a few more features for the app to improve its usability! The original features include you can update schedules, log in to your account, and all physical activity monitors follow CDC physical activity guidelines. This app supports both UN SDG 3 and 10 in the UN Sustainability Goals. The new features added since the last ship includes Android offline APK artifact, Emergency contact/911 easy calling during emergency, better scrolling logic, fixed dark mode, and images to showcase exercises better (picture showcases this feature). Let me know if there is anything else to add in the future! Thank you for reading this and your support on this project🙏!", "repo": "https://github.com/robot3-track/Senior-Fitness-Scheduler", "demo": "https://senior-fitness-scheduler.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-13T00:13:32Z", "hours": 1.0, "multiplier": 7.99, "payout": 7, "blessing": "neutral", "text": "Ship #1: The app is up and running with the core features all functioning as supposed to! Right now you can update schedules, log in to your account, and all physical activity monitors follow CDC physical activity guidelines. This app supports both UN SDG 3 and 10 in the UN Sustainability Goals. Let me know if there is anything else to add in the future!", "repo": "https://github.com/robot3-track/Senior-Fitness-Scheduler", "demo": "https://senior-fitness-scheduler.vercel.app/"}]...
|
[{"post_id": 35575, "ts": "202 [{"post_id": 35575, "ts": "2026-07-27T03:28:15Z", "hours": 0.4836, "text": "Devlog 9: Updated scrolling features for better UI and also updated font size so mobile view can be fixed as well. In addition, I also added new exercises and images that correspond to the exercises so users can understand how the exercises are performed more accurately with no guessing!"}, {"post_id": 34765, "ts": "2026-07-25T19:04:47Z", "hours": 0.3461, "text": "Devlog 8: Added easy Android download and built new Favicon for the app"}, {"post_id": 34746, "ts": "2026-07-25T18:36:47Z", "hours": 0.5017, "text": "Devlog 7: Added new features for elderly safety! I added enhanced emergency modal contacts, with automatic-fillout on SMS/CALL for calling 911 on mobile devices upon the press of a button. Now the elderly can also add their own contacts for calling automatically. Lastly, one more integration included adding pdf export for sharing with doctors about daily routines."}, {"post_id": 34333, "ts": "2026-07-24T22:55:45Z", "hours": 0.4067, "text": "Devlog 6: I added new android files for offline access! This gives users the ability to have it on the go on Android devices, even if they are offline! I built this using Github Artifacts with android-build.yml in .github/workflows."}, {"post_id": 27966, "ts": "2026-07-13T22:30:01Z", "hours": 0.2867, "text": "Devlog 5: Completely recode page.tsx and app UI to match elderly support."}, {"post_id": 27908, "ts": "2026-07-13T20:41:20Z", "hours": 0.3103, "text": "Devlog 4: Continued to manually update UI to remove unappealing aspects in color scheme."}, {"post_id": 27811, "ts": "2026-07-13T18:13:30Z", "hours": 0.4475, "text": "Devlog 3: Updated UI to look more appealing to users and added more features to make the app more gamified."}, {"post_id": 26987, "ts": "2026-07-12T03:39:41Z", "hours": 0.5453, "text": "Devlog 2: Updated layout and favicon for the metadata of the app Included new UI format to match current health app-styles that can be seen around the world currently."}, {"post_id": 26935, "ts": "2026-07-12T00:47:00Z", "hours": 0.3681, "text": "Devlog 1: Initial Commit and Setup I created the base framework files and UI for the app, along with a clear Readme that describes the purposes of the app. Much more to come!"}]...
|
Title: Senior Fitness Scheduler by @cognitayohan | Title: Senior Fitness Scheduler by @cognitayohan | Stardance
Devlogs:
Devlog 1: Initial Commit and Setup I created the base framework files and UI for the app, along with a clear Readme that describes the purposes of the app. Much more to come!
Devlog 2: Updated layout and favicon for the metadata of the app Included new UI format to match current health app-styles that can be seen around the world currently.
Devlog 3: Updated UI to look more appealing to users and added more features to make the app more gamified.
Devlog 4: Continued to manually update UI to remove unappealing aspects in color scheme.
Devlog 5: Completely recode page.tsx and app UI to match elderly support.
Devlog 6: I added new android files for offline access! This gives users the ability to have it on the go on Android devices, even if they are offline! I built this using Github Artifacts with android-build.yml in .github/workflows.
Devlog 7: Added new features for elderly safety! I added enhanced emergency modal contacts, with automatic-fillout on SMS/CALL for calling 911 on mobile devices upon the press of a button. Now the elderly can also add their own contacts for calling automatically. Lastly, one more integration included adding pdf export for sharing with doctors about daily routines.
Devlog 8: Added easy Android download and built new Favicon for the app
Devlog 9: Updated scrolling features for better UI and also updated font size so mobile view can be fixed as well. In addition, I also added new exercises and images that correspond to the exercises so users can understand how the exercises are performed more accurately with no guessing!
Ships:
Ship #1: The app is up and running with the core features all functioning as supposed to! Right now you can update schedules, log in to your account, and all physical activity monitors follow CDC physical activity guidelines. This app supports both UN SDG 3 and 10 in the UN Sustainability Goals. Let me know if there is anything else to add in the future!
Ship #2: After reviewing community requests, I added a few more features for the app to improve its usability! The original features include you can update schedules, log in to your account, and all physical activity monitors follow CDC physical activity guidelines. This app supports both UN SDG 3 and 10 in the UN Sustainability Goals. The new features added since the last ship includes Android offline APK artifact, Emergency contact/911 easy calling during emergency, better scrolling logic, fixed dark mode, and images to showcase exercises better (picture showcases this feature). Let me know if there is anything else to add in the future! Thank you for reading this and your support on this project🙏!...
|
1792842970.8295152
|
1792929370.8295152
|
|
34046
|
My Space - Save Messages by @najil_kilayil | Stard My Space - Save Messages by @najil_kilayil | Stardance...
|
najil_kilayil
|
2
|
8.0
|
28
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T14:00:12Z", "hours": 5.0, "multiplier": 4.0, "payout": 20, "blessing": "neutral", "text": "I created a website with modern UI with glasmorphism effect. The website allows you to save important notes (text form). The notes are safe from others by a localStorage PIN security system. The website is only accessible when the PIN is correct. Basic features :- PIN screen, Background animation, Animation UI, Dynamic navbar, Points system, edit-copy-remove options, Connected localstorage, Custom mouse icon etc Try it, and feel free to give feedback to improve the progress! :)", "repo": "https://github.com/najilkilayil/my-space", "demo": "https://my-space-save.vercel.app/"}, {"ship_num": 2, "ts": "2026-08-02T15:46:48Z", "hours": 3.0, "multiplier": 2.75, "payout": 8, "blessing": "neutral", "text": "I created a simple website with modern UI design and PIN security system. That allows you to save important notes (in text format) in a website. It will store in your local storage. The website is only accessible when the security PIN is correct Try it, And feel free to give feedback!", "repo": "https://github.com/najilkilayil/my-space", "demo": "https://my-space-save.vercel.app/"}]...
|
[{"post_id": 45309, "ts": "202 [{"post_id": 45309, "ts": "2026-08-11T17:53:09Z", "hours": 0.76, "text": "Devlog #9 Now, i got a another funny plan, earn points to unlock features such as copy and edit when user earn and collect the points. So i defined the points as keys and with emoji of a key which is more suitable for this website theme! So i added a div section that shows the total keys that user collects at the top-right on the website and also added how many keys are collected from each note list, so i added the keys amount on each list. And i created my own principle to calculate the keys earned per list note, The keys are calculated based on letter count. 1 key per 4 letter count. If the letter count is less than 4 the key will be 0 and if the letter count is 10 that fore the keys count is 2. that is, if letter count is not completely divisible by 4 the nearest completely divided value is selected. This is the major logic for my keys calculating system! Then i added another animation text which will show up when the user hovered on the top-right keys points section. i decided that to unlock copy feature need more than 100 and 150 keys for unlock editing feature. So i added if-else condition inside the editMsg() and copyMsg() functions, when the amount on keys is less than that of it will show up a alert with how much keys more needed to unlock that feature. Its very booring to show as default browser alerting system so i thought why should i alert this through keysinfo area. So i just created a function called infoKey() with a parameter ‘text’ which will help to reduce complicity and retyping the code again and again! Then to make for carzy and funny appearence changed the default mouse pointer into a key emoji and made the movement based on collect xy axis of the mouse using js and also hided the defult icon in body style area"}, {"post_id": 45211, "ts": "2026-08-11T15:17:53Z", "hours": 1.8422, "text": "Devlog #8 Today i changed the head title and subtitle from the top into the bottom with input box. And made the both sections for dynamic as well as the user focus in and focus out in the input box. Now i thought to add copy and edit options for each notes. For that i changed the render()’s html with edit and copy button tags as similar as delete button, then i created each funcion called editMsg() and copyMsg(). To work the editMsg(), when the user selects and click on the note that the user need to edit, the text will appear as well as with the input box got autofocus in and the text to be edited is automaticaly typed in the input box. Added a if-else condition to identify the user is sending new note or it is already existing and editing, if it is exisits and the user is editing then submiting again the note will rechange into new one! In copyMsg(), i simply used ddefault navigor function with clipboard connection and with the value to copy the user selected text. I just added the normal ‘alert’ feature at first when the user click on copy and it successfully copied and when successfully edited the note. I got a plan to make the “alert notiications” more attactive and dynamic. So added another section div inside the bottom area div then animated as popup from bottom and going back to bottom (outside the page), with that time the heading and subhead section become small width and then came back to normal when the alert is disappeared for this animation i used js of its very complicated to re-use whenever it needs (for edit and copy button). So i created a function alertNoti() with two parameters! Then solved some scrolling bugs i found that the website is automatically scrolling down as well as according to the movement of the background dots. So i disabled all the overflow of the all elements including body and excluding section div, which make the website only scroll and show the scroll bar when the section list is overflow!"}, {"post_id": 41419, "ts": "2026-08-05T16:46:41Z", "hours": 0.8242, "text": "Devlog #7 Today, i added lock emoji icon moeving with overlapping effect animation in PIN screen using CSS and CSS function keyframe. At that time i got another idea why should i add something like this animation on the background, So i just created a tiny-dot and added the same animation function then i connected with JS to visible multiple tiny-dots at a time using for-loop with same animation. Btw i used a root value in CSS for the both animation to delay the animation according to there class count, which will gave the animation at different timeing! Then i changed the input box of the PIN screen into a completely invisible and only shows the dots so PIN with colours (as green for correct and red with shakeing the dots animation for incorrect PIN).. I got a inspiration from a reel that i saw on Instagram today where the website is completely with theme of term GLASSMORPHISM. then i thought to add this theme into my project so changes the opacity of everything into .7 and remove some of the border and background colour and some with background colour with transparent! Then I added a header at main screen with fixed position of the main and sub headings with the same theme glassmorphism effect!"}, {"post_id": 40178, "ts": "2026-08-03T16:11:22Z", "hours": 1.4983, "text": "Devlog #6 Today, i decided to change the theme and color palette of the website and mind-set to add more animations! I selected a colour palette with a bases of dark-theme which is more comfortable for the users. So i changed white-purple theme into black-blue theme. So i selected colours for all the elements and added box shadow and border outline and element shadow effect. Then i changed the PIN screen buttons into circle from a semi-rectangular shape with suitable colours and hovering effects, Then i added a simple emoji icon on the PIN screen which gave more attraction and fill up the empty space. Put all the PIN screen elements such heading and subheadings, buttons and PIN input area in a box containing a special border and effect! A added a simple transition animation between two sections (PIN Screen and Main screen) like fadeIn and fadeout animation effect! Also added the colour effect for the PIN input box that indicates the correct PIN with green and incorrect with a shake animation with red colour effect which made the PIN screen more attractive and modern look, i also added a cyan colour effect to the input when the user clickes a number button. Then change the empty state into new modern with new text format. As well as added a icon emoji on the each list menu like a pointer. As well as changed the date format 3/8/2026 into 03-Aug-2026 which make the user more easier to understand the date. Iam thinking to change the input text box into a modern look, so changed the width of the box into small and hide the submit button, the box will expand and show the submit button when the user focus on the box, and also added a ‘blur()’ in JS to came back to small size when the user clicks the submit button Then finally added a animation thats perfectly matches for adding or removing list menu As well as i choose some fonts style from google.fonts.com and decided to use in the website."}, {"post_id": 39520, "ts": "2026-08-02T15:07:33Z", "hours": 0.5586, "text": "Devlog #5 - Adding Deleting feature To make the website more user-friendly thought to add delete option if user needs to remove or delete the saved note! Created a function with two parameters one for the selecting the array of the user selected to delete (from localStorage) and another parameter is number of the section list to remove that section! and also added a conformation alert notification to conform the user actually needed to delete it or not! Then made the button more attractive like hovering animation and etc"}, {"post_id": 39392, "ts": "2026-08-02T10:33:33Z", "hours": 0.8483, "text": "Devlog #4 - Password System when considering about privacy and security measurements added a security PIN system that secure the list that have been saved in the localStoarge system. Now needed to save this PIN also in the localStorage and work the renderMsg() if the password is correct else doesn’t show it! PIN is linked with localstorage and simpley added a if-else condition to identify the user is new in here or not, if the PIN is not saved in localstorage can understand that the user new here, thatfore it will shows a text to create the PIN and else if there is saved PIN shows a text to enter the PIN to continue. When the user needed to create a pin added a another security condition that doesn’t allow to create if the PIN is less than 4 digit, the user strictly needed a 4 digits PIN to continue Then added a function to reset the PIN when the user forgot the PIN, user can reset everything (including list menu) by double clicking the C (resetbtn) with conforming the alert notification then the user can reset everything!"}, {"post_id": 39365, "ts": "2026-08-02T09:27:45Z", "hours": 0.6247, "text": "Devlog 3 - Working on JS Completed working on basic UI design, Now lets work on backend desk! Called all the necessary elements from HTML into JS. Then added function for the submit button to add the list menu with text that the user have entered in the input box and also added the codes that makes and get current/today date from the device and add that also into the list. Connect the list with local storage for save the list menu. For that to show the saved list when ever the user opened the website, created a function ‘renderMsg()’ In renderMsg() added a if condition to show that if there is no saved list or it was a new user, show the empty state."}, {"post_id": 39321, "ts": "2026-08-02T06:56:14Z", "hours": 0.4006, "text": "Devlog #2 In this part, added a empty state when a new user or there is no saved messages , shows a custom message that indicates there is nothing saved! So added a section called ‘empty_state’. Here is the demo of that!"}, {"post_id": 28498, "ts": "2026-07-14T19:44:32Z", "hours": 0.5261, "text": "About the Project It is a simple user-friendly website that user can sent texts to memorize or to save it on the local storage. Devlog #1 I just created html and css files. And designed the website. tried to make to look as modern, simple and clear-structure, created the text input and sent button and fixed their positions to fix it even when the website need to be scrolled. Designed the column-list like a each card which make the website for clear."}]...
|
Title: My Space - Save Messages by @najil_kilayil Title: My Space - Save Messages by @najil_kilayil | Stardance
Devlogs:
About the Project It is a simple user-friendly website that user can sent texts to memorize or to save it on the local storage. Devlog #1 I just created html and css files. And designed the website. tried to make to look as modern, simple and clear-structure, created the text input and sent button and fixed their positions to fix it even when the website need to be scrolled. Designed the column-list like a each card which make the website for clear.
Devlog #2 In this part, added a empty state when a new user or there is no saved messages , shows a custom message that indicates there is nothing saved! So added a section called ‘empty_state’. Here is the demo of that!
Devlog 3 - Working on JS Completed working on basic UI design, Now lets work on backend desk! Called all the necessary elements from HTML into JS. Then added function for the submit button to add the list menu with text that the user have entered in the input box and also added the codes that makes and get current/today date from the device and add that also into the list. Connect the list with local storage for save the list menu. For that to show the saved list when ever the user opened the website, created a function ‘renderMsg()’ In renderMsg() added a if condition to show that if there is no saved list or it was a new user, show the empty state.
Devlog #4 - Password System when considering about privacy and security measurements added a security PIN system that secure the list that have been saved in the localStoarge system. Now needed to save this PIN also in the localStorage and work the renderMsg() if the password is correct else doesn’t show it! PIN is linked with localstorage and simpley added a if-else condition to identify the user is new in here or not, if the PIN is not saved in localstorage can understand that the user new here, thatfore it will shows a text to create the PIN and else if there is saved PIN shows a text to enter the PIN to continue. When the user needed to create a pin added a another security condition that doesn’t allow to create if the PIN is less than 4 digit, the user strictly needed a 4 digits PIN to continue Then added a function to reset the PIN when the user forgot the PIN, user can reset everything (including list menu) by double clicking the C (resetbtn) with conforming the alert notification then the user can reset everything!
Devlog #5 - Adding Deleting feature To make the website more user-friendly thought to add delete option if user needs to remove or delete the saved note! Created a function with two parameters one for the selecting the array of the user selected to delete (from localStorage) and another parameter is number of the section list to remove that section! and also added a conformation alert notification to conform the user actually needed to delete it or not! Then made the button more attractive like hovering animation and etc
Devlog #6 Today, i decided to change the theme and color palette of the website and mind-set to add more animations! I selected a colour palette with a bases of dark-theme which is more comfortable for the users. So i changed white-purple theme into black-blue theme. So i selected colours for all the elements and added box shadow and border outline and element shadow effect. Then i changed the PIN screen buttons into circle from a semi-rectangular shape with suitable colours and hovering effects, Then i added a simple emoji icon on the PIN screen which gave more attraction and fill up the empty space. Put all the PIN screen elements such heading and subheadings, buttons and PIN input area in a box containing a special border and effect! A added a simple transition animation between two sections (PIN Screen and Main screen) like fadeIn and fadeout animation effect! Also added the colour effect for the PIN input box that indicates the correct PIN with green and incorrect with a shake animation with red colour effect which made the PIN screen more attractive and modern look, i also added a cyan colour effect to the input when the user clickes a number button. Then change the empty state into new modern with new text format. As well as added a icon emoji on the each list menu like a pointer. As well as changed the date format 3/8/2026 into 03-Aug-2026 which make the user more easier to understand the date. Iam thinking to change the input text box into a modern look, so changed the width of the box into small and hide the submit button, the box will expand and show the submit button when the user focus on the box, and also added a ‘blur()’ in JS to came back to small size when the user clicks the submit button Then finally added a animation thats perfectly matches for adding or removing list menu As well as i choose some fonts style from google.fonts.com and decided to use in the website.
Devlog #7 Today, i added lock emoji icon moeving with overlapping effect animation in PIN screen using CSS and CSS function keyframe. At that time i got another idea why should i add something like this animation on the background, So i just created a tiny-dot and added the same animation function then i connected with JS to visible multiple tiny-dots at a time using for-loop with same animation. Btw i used a root value in CSS for the both animation to delay the animation according to there class count, which will gave the animation at different timeing! Then i changed the input box of the PIN screen into a completely invisible and only shows the dots so PIN with colours (as green for correct and red with shakeing the dots animation for incorrect PIN).. I got a inspiration from a reel that i saw on Instagram today where the website is completely with theme of term GLASSMORPHISM. then i thought to add this theme into my project so changes the opacity of everything into .7 and remove some of the border and background colour and some with background colour with transparent! Then I added a header at main screen with fixed position of the main and sub headings with the same theme glassmorphism effect!
Devlog #8 Today i changed the head title and subtitle from the top into the bottom with input box. And made the both sections for dynamic as well as the user focus in and focus out in the input box. Now i thought to add copy and edit options for each notes. For that i changed the render()’s html with edit and copy button tags as similar as delete button, then i created each funcion called editMsg() and copyMsg(). To work the editMsg(), when the user selects and click on the note that the user need to edit, the text will appear as well as with the input box got autofocus in and the text to be edited is automaticaly typed in the input box. Added a if-else condition to identify the user is sending new note or it is already existing and editing, if it is exisits and the user is editing then submiting again the note will rechange into new one! In copyMsg(), i simply used ddefault navigor function with clipboard connection and with the value to copy the user selected text. I just added the normal ‘alert’ feature at first when the user click on copy and it successfully copied and when successfully edited the note. I got a plan to make the “alert notiications” more attactive and dynamic. So added another section div inside the bottom area div then animated as popup from bottom and going back to bottom (outside the page), with that time the heading and subhead section become small width and then came back to normal when the alert is disappeared for this animation i used js of its very complicated to re-use whenever it needs (for edit and copy button). So i created a function alertNoti() with two parameters! Then solved some scrolling bugs i found that the website is automatically scrolling down as well as according to the movement of the background dots. So i disabled all the overflow of the all elements including body and excluding section div, which make the website only scroll and show the scroll bar when the section list is overflow!
Devlog #9 Now, i got a another funny plan, earn points to unlock features such as copy and edit when user earn and collect the points. So i defined the points as keys and with emoji of a key which is more suitable for this website theme! So i added a div section that shows the total keys that user collects at the top-right on the website and also added how many keys are collected from each note list, so i added the keys amount on each list. And i created my own principle to calculate the keys earned per list note, The keys are calculated based on letter count. 1 key per 4 letter count. If the letter count is less than 4 the key will be 0 and if the letter count is 10 that fore the keys count is 2. that is, if letter count is not completely divisible by 4 the nearest completely divided value is selected. This is the major logic for my keys calculating system! Then i added another animation text which will show up when the user hovered on the top-right keys points section. i decided that to unlock copy feature need more than 100 and 150 keys for unlock editing feature. So i added if-else condition inside the editMsg() and copyMsg() functions, when the amount on keys is less than that of it will show up a alert with how much keys more needed to unlock that feature. Its very booring to show as default browser alerting system so i thought why should i alert this through keysinfo area. So i just created a function called infoKey() with a parameter ‘text’ which will help to reduce complicity and retyping the code again and again! Then to make for carzy and funny appearence changed the default mouse pointer into a key emoji and made the movement based on collect xy axis of the mouse using js and also hided the defult icon in body style area
Ships:
I created a simple website with modern UI design and PIN security system. That allows you to save important notes (in text format) in a website. It will store in your local storage. The website is only accessible when the security PIN is correct Try it, And feel free to give feedback!
I created a website with modern UI with glasmorphism effect. The website allows you to save important notes (text form). The notes are safe from others by a localStorage PIN security system. The website is only accessible when the PIN is correct. Basic features :- PIN screen, Background animation, Animation UI, Dynamic navbar, Points system, edit-copy-remove options, Connected localstorage, Custom mouse icon etc Try it, and feel free to give feedback to improve the progress! :)...
|
1792849900.3351183
|
1793713900.3351183
|
|
34089
|
Carnival Chaos by @Nico | Stardance
|
Nico
|
2
|
56.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-08T16:26:51Z", "hours": 30.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Carnival Chaos Carnival Chaos is a short, WarioWare-like game with 7 fun minigames you need to complete to win Hay bale climb - Platform up the hay bales to collect the coins Whack-a-mole - Click on all the moles before time runs out Dunk Tank - rapidly click the target as fast as you can to dunk the person Water Gun - Spray the target with your water gun to fill up the meter and win High Striker - Hit the button with the hammer to ring the bell Tug of War - Hit quick-time events to pull on the rope. pull far enough to win Face Painting - Paint the face to match the template. If you are close enough to the guide, you win the game! Once you win, you’ll see how long you took. Click play again and see how fast you can go!. My fastest time is 90.30 seconds. Try to beat that! Have fun!!!", "repo": "https://github.com/DinoMito1/Carnival-Chaos", "demo": "https://dino-mito.itch.io/carnival-chaos"}, {"ship_num": 2, "ts": "2026-08-18T18:43:59Z", "hours": 26.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Carnival Chaos This is a WarioWare-like game There are 4 quick minigames you must complete to win A platformer - climb on hay bales and collect the coins Whack-a-mole - click all of the moles in time Dunk Tank - rapidly hit the target many times Water Gun - spray water at a target to fill up the bar and win When you win, you’ll see how long you took to win. Try again and see how fast you can go my fastest time is 31.10 seconds. Try beating that! Hope you have fun!", "repo": "https://github.com/DinoMito1/Carnival-Chaos", "demo": "https://dino-mito.itch.io/carnival-chaos"}]...
|
[{"post_id": 77720, "ts": "202 [{"post_id": 77720, "ts": "2026-10-08T02:44:08Z", "hours": 2.5572, "text": "One Last Devlog! This devlog will be a shorter one. There wasn’t to much work left to do, so this last section didn’t take too long. I added another option into settings, being a manual toggle for mobile controls, incase they dont turn on automatically for mobile users or you just want to try the controls on PC. I also made a pause button . During any level of the game you can press the button to pause the game and decide whether to continue or quit back to the start of the game. I can’t believe this game is finally finished! I’ll be shipping it very soon, but in the meantime, you can try the game here! Let me know what you think!"}, {"post_id": 73724, "ts": "2026-09-25T19:49:24Z", "hours": 10.935, "text": "THE FINAL MINIGAME!!! Took a while, but I finally finished minigame 7! You have to paint the face to match the reference image before time runs out. This minigame was super difficult to get working because i needed to edit the face texture during run time, and I had no idea how to do that. Once I got the drawing to work I ran into another problem – how do you beat the game? I ended up having it check every pixel of your drawing against the reference image and keeping track of how many are the same color and letting you win as long as you are at least 70% accurate. I thought I was finished, so I exported the game and gave it one last test. It didn’t work. For some reason, when I exported to web, none of the drawing parts would work and I had to recode parts of the minigame several times. Eventually I got everything working. I know I just complained a lot, but I am really proud of this. It’s easily the most difficult thing I’ve made yet. Go test the game, tell me what you think! You can try it here!"}, {"post_id": 68378, "ts": "2026-09-15T01:05:16Z", "hours": 8.6708, "text": "Minigame Six!!! It’s Tug of War! You have to hit the QTEs to pull the rope in your direction and win the minigame. I originally started making an entire different minigame, but after working on it for several hours I realized it wasn’t very fun at all and scrapped it. I spent forever tweaking with the different numbers for this game, trying to get it to feel nice to play, and I think its pretty fun now. I also tried showing off the game to my brothers on mobile and they really struggled to use the mobile arrow key things, so they helped me fix it so that the 1st and 4th minigame are easier to play on phone. I’m trying really hard to balance the difficulty for this while keeping this fun for everyone, but for those looking for a challenge, I am planning on adding a hard mode soon If you want to try the game, you can play it here !"}, {"post_id": 64563, "ts": "2026-09-09T02:17:49Z", "hours": 8.0703, "text": "I’m back with minigame five! This one is based on those hammer tower games I can never remember the name of You have to press spacebar when the hammer is above the button to swing down and ring the bell! I also added… MOBILE SUPPORT Every single minigame now works on mobile. I made custom arrow key buttons for the platforming and water gun game on mobile. I also slightly polished some older things, mainly the first two minigames, making it slightly more obvious when you win and playing a sad sound when you lose If you want to try the game, you can play it here Sorry its been a while since my last devlog. I’ve been on vacation for the last several days and now school has started again. I’ll try to make 2 more minigames for a total of 7, and then I will be happy to call this complete!"}, {"post_id": 47856, "ts": "2026-08-16T02:43:27Z", "hours": 6.0897, "text": "Fourth Minigame!!! You have to shoot the target with the water gun to fill up the bar in time to win the minigame. The target is constantly moving along a track so it is more difficult to stay on the target. I was struggling for a while to get this minigame feeling fun. Whenever I tested it, it always felt like something was missing so I tried a bunch of different stuff, like adding little sound effects or making the target react to being sprayed with water. I tried lots of different things, not all of them got used, but I think I’m happy with how this plays right now With the fourth minigame finished, I’d say the game is finished too. I just have to write the README and put it on Itch.io, then this will be fully done. You can expect to see this get shipped soon!"}, {"post_id": 45250, "ts": "2026-08-11T16:26:19Z", "hours": 5.9428, "text": "Minigame Number 3!!! Its a Dunk Tank! You have to hit the target a bunch of times before time runs out to dunk the person and win the minigame. My little brother wanted to help out with this one so I let him make the splash sound for the dunk tank. speaking of my brother, I let him play test everything once I finished this minigame and he seemed to really enjoy it. He was playing for 20+ minutes trying to get a fast time, so I’m feeling pretty good about the game right now. I also added a volume slider in settings, this is where most of my time was spent. I originally was going to make the slider change the decibel level of every sound in the game individually, but since decibels are logarithmic, I didn’t know how to mute the audio this way. After a while I figured out how to scale volume linearly, but the way I was doing would require me to redo all of the audio ingame. I spent multiple hours messing around with audio stuff trying to make the slider work how I wanted, until I thought that there has to be an easier way. Then I found out about Audio Buses. I did exactly what I was already doing to all of the sounds to only the Audio Bus instead and this fixed my several hour long problem almost immediately. Just one more minigame to go and I think this game will be finished!"}, {"post_id": 42864, "ts": "2026-08-07T20:25:01Z", "hours": 3.9539, "text": "You can win now! Yippee!!! I made a win screen that shows if you beat all the minigames and a loss screen that shows if you somehow run out of lives. Both of the screens have a big retry button that takes you back to the menu, so you wont have to reopen the game to play again anymore. The win screen also has a cool sign that shows off your time and your best time. Your best time is saved if you retry so you can try to win all minigames as fast as you can To keep track of your time I just start a timer as soon as you press the start button and then check how long its been once you win I also added sound!!! It felt way too quiet playing through the game so I added some simple sound effects for stuff like clicking buttons, whacking moles, jumping, and some others. The sound effects were super fun to make because they are all just my voice lol. I’m not sure why this took me so long to do, it didnt feel like that much stuff. Regardless, I think I’ll make two more minigames after this, and then this will be ready to ship!"}, {"post_id": 40541, "ts": "2026-08-04T05:13:34Z", "hours": 3.4028, "text": "Second minigame finished!!! This one is just like classic Whack-a-mole games. You have to hit all the moles in time to win! This minigame was actually the quickest and easiest thing to code so far. (Though i did spend an embarrassingly long time on the art) Instead most of my time in Godot was spent polishing some things I didn’t like too much yet. The coins in the first minigame float up and down now. I forgot to do this when I first made them. Instead of just disappearing, your lives, which are tickets, rip in two then fade away when you lose a minigame. Lastly, I put an indicator before each minigame to show what it’s controls are. Such as arrow keys or mouse. Then when the minigame starts it shows in big text on the screen what your goal is. For example on the platforming minigame it says COLLECT Sorry for the longer devlog, I had a lot of little things I did I thought were worth sharing. Im really starting to like how this is coming along, so you can expect to see more devlogs from me soon."}, {"post_id": 38491, "ts": "2026-07-31T22:02:27Z", "hours": 4.3592, "text": "Finished the platforming minigame! It is based on those big stacks of hay you can climb at carnivals sometimes. You have to try and collect three coins before time is up to win. I wanted to give the little character a walking animation but i was struggling to figure it out so they just have a slightly different sprite while walking. I messed around with the movement speed and minigame time for a while to try and get good so overall im pretty happy with this."}, {"post_id": 35593, "ts": "2026-07-27T03:57:05Z", "hours": 2.0839, "text": "Made the menu for Carnival Chaos. This is going to be a WarioWare-like game where you complete several different carnival themed minigames to win! I got distracted making the art for a while and decided to make the building animated, but it took me forever to figure out how to use timers. I know there’s not too much right now but please let me know if you have any thoughts or criticism!"}]...
|
Title: Carnival Chaos by @Nico | Stardance
Devlog Title: Carnival Chaos by @Nico | Stardance
Devlogs:
Made the menu for Carnival Chaos. This is going to be a WarioWare-like game where you complete several different carnival themed minigames to win! I got distracted making the art for a while and decided to make the building animated, but it took me forever to figure out how to use timers. I know there’s not too much right now but please let me know if you have any thoughts or criticism!
Finished the platforming minigame! It is based on those big stacks of hay you can climb at carnivals sometimes. You have to try and collect three coins before time is up to win. I wanted to give the little character a walking animation but i was struggling to figure it out so they just have a slightly different sprite while walking. I messed around with the movement speed and minigame time for a while to try and get good so overall im pretty happy with this.
Second minigame finished!!! This one is just like classic Whack-a-mole games. You have to hit all the moles in time to win! This minigame was actually the quickest and easiest thing to code so far. (Though i did spend an embarrassingly long time on the art) Instead most of my time in Godot was spent polishing some things I didn’t like too much yet. The coins in the first minigame float up and down now. I forgot to do this when I first made them. Instead of just disappearing, your lives, which are tickets, rip in two then fade away when you lose a minigame. Lastly, I put an indicator before each minigame to show what it’s controls are. Such as arrow keys or mouse. Then when the minigame starts it shows in big text on the screen what your goal is. For example on the platforming minigame it says COLLECT Sorry for the longer devlog, I had a lot of little things I did I thought were worth sharing. Im really starting to like how this is coming along, so you can expect to see more devlogs from me soon.
You can win now! Yippee!!! I made a win screen that shows if you beat all the minigames and a loss screen that shows if you somehow run out of lives. Both of the screens have a big retry button that takes you back to the menu, so you wont have to reopen the game to play again anymore. The win screen also has a cool sign that shows off your time and your best time. Your best time is saved if you retry so you can try to win all minigames as fast as you can To keep track of your time I just start a timer as soon as you press the start button and then check how long its been once you win I also added sound!!! It felt way too quiet playing through the game so I added some simple sound effects for stuff like clicking buttons, whacking moles, jumping, and some others. The sound effects were super fun to make because they are all just my voice lol. I’m not sure why this took me so long to do, it didnt feel like that much stuff. Regardless, I think I’ll make two more minigames after this, and then this will be ready to ship!
Minigame Number 3!!! Its a Dunk Tank! You have to hit the target a bunch of times before time runs out to dunk the person and win the minigame. My little brother wanted to help out with this one so I let him make the splash sound for the dunk tank. speaking of my brother, I let him play test everything once I finished this minigame and he seemed to really enjoy it. He was playing for 20+ minutes trying to get a fast time, so I’m feeling pretty good about the game right now. I also added a volume slider in settings, this is where most of my time was spent. I originally was going to make the slider change the decibel level of every sound in the game individually, but since decibels are logarithmic, I didn’t know how to mute the audio this way. After a while I figured out how to scale volume linearly, but the way I was doing would require me to redo all of the audio ingame. I spent multiple hours messing around with audio stuff trying to make the slider work how I wanted, until I thought that there has to be an easier way. Then I found out about Audio Buses. I did exactly what I was already doing to all of the sounds to only the Audio Bus instead and this fixed my several hour long problem almost immediately. Just one more minigame to go and I think this game will be finished!
Fourth Minigame!!! You have to shoot the target with the water gun to fill up the bar in time to win the minigame. The target is constantly moving along a track so it is more difficult to stay on the target. I was struggling for a while to get this minigame feeling fun. Whenever I tested it, it always felt like something was missing so I tried a bunch of different stuff, like adding little sound effects or making the target react to being sprayed with water. I tried lots of different things, not all of them got used, but I think I’m happy with how this plays right now With the fourth minigame finished, I’d say the game is finished too. I just have to write the README and put it on Itch.io, then this will be fully done. You can expect to see this get shipped soon!
I’m back with minigame five! This one is based on those hammer tower games I can never remember the name of You have to press spacebar when the hammer is above the button to swing down and ring the bell! I also added… MOBILE SUPPORT Every single minigame now works on mobile. I made custom arrow key buttons for the platforming and water gun game on mobile. I also slightly polished some older things, mainly the first two minigames, making it slightly more obvious when you win and playing a sad sound when you lose If you want to try the game, you can play it here Sorry its been a while since my last devlog. I’ve been on vacation for the last several days and now school has started again. I’ll try to make 2 more minigames for a total of 7, and then I will be happy to call this complete!
Minigame Six!!! It’s Tug of War! You have to hit the QTEs to pull the rope in your direction and win the minigame. I originally started making an entire different minigame, but after working on it for several hours I realized it wasn’t very fun at all and scrapped it. I spent forever tweaking with the different numbers for this game, trying to get it to feel nice to play, and I think its pretty fun now. I also tried showing off the game to my brothers on mobile and they really struggled to use the mobile arrow key things, so they helped me fix it so that the 1st and 4th minigame are easier to play on phone. I’m trying really hard to balance the difficulty for this while keeping this fun for everyone, but for those looking for a challenge, I am planning on adding a hard mode soon If you want to try the game, you can play it here !
THE FINAL MINIGAME!!! Took a while, but I finally finished minigame 7! You have to paint the face to match the reference image before time runs out. This minigame was super difficult to get working because i needed to edit the face texture during run time, and I had no idea how to do that. Once I got the drawing to work I ran into another problem – how do you beat the game? I ended up having it check every pixel of your drawing against the reference image and keeping track of how many are the same color and letting you win as long as you are at least 70% accurate. I thought I was finished, so I exported the game and gave it one last test. It didn’t work. For some reason, when I exported to web, none of the drawing parts would work and I had to recode parts of the minigame several times. Eventually I got everything working. I know I just complained a lot, but I am really proud of this. It’s easily the most difficult thing I’ve made yet. Go test the game, tell me what you think! You can try it here!
One Last Devlog! This devlog will be a shorter one. There wasn’t to much work left to do, so this last section didn’t take too long. I added another option into settings, being a manual toggle for mobile controls, incase they dont turn on automatically for mobile users or you just want to try the controls on PC. I also made a pause button . During any level of the game you can press the button to pause the game and decide whether to continue or quit back to the start of the game. I can’t believe this game is finally finished! I’ll be shipping it very soon, but in the meantime, you can try the game here! Let me know what you think!
Ships:
Carnival Chaos This is a WarioWare-like game There are 4 quick minigames you must complete to win A platformer - climb on hay bales and collect the coins Whack-a-mole - click all of the moles in time Dunk Tank - rapidly hit the target many times Water Gun - spray water at a target to fill up the bar and win When you win, you’ll see how long you took to win. Try again and see how fast you can go my fastest time is 31.10 seconds. Try beating that! Hope you have fun!
Carnival Chaos Carnival Chaos is a short, WarioWare-like game with 7 fun minigames you need to complete to win Hay bale climb - Platform up the hay bales to collect the coins Whack-a-mole - Click on all the moles before time runs out Dunk Tank - rapidly click the target as fast as you can to dunk the person Water Gun - Spray the target with your water gun to fill up the meter and win High Striker - Hit the button with the hammer to ring the bell Tug of War - Hit quick-time events to pull on the rope. pull far enough to win Face Painting - Paint the face to match the template. If you are close enough to the guide, you win the game! Once you win, you’ll see how long you took. Click play again and see how fast you can go!. My fastest time is 90.30 seconds. Try to beat that! Have fun!!!...
|
1792839337.4592936
|
1792925737.4592936
|
|
34143
|
Spectralis by @DeltaVortex | Stardance
|
DeltaVortex
|
2
|
332.84
|
4092
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-06T05:56:33Z", "hours": 236.0, "multiplier": 16.89, "payout": 3884, "blessing": "neutral", "text": "Spectralis shiplarp 2 — Stardance —wuzzup guys— So much has happened since shiplarp 1 and I cannot wait to not break down what changed. I will. I’m lazy. Not right now though. Cat or dog? redeem_code.claim() —the celebration— We’ve gone through so many changes since last time that it deserves an actual celebration: a very cool, very awesome custom visualizer for Stardance. Claim yours: Help > Manage Visualizers, then redeem stardance-lts-pulp . —found a bug?— Including the dreaded Tim Cook issues — DM me: Discord: @deltav0rtex Slack: deltavortex Can’t wait to hear the feedback and all the bugs you dig up. —this is the end*— *end for now, redeem codes permitting YIPEE!!!", "repo": "https://github.com/Dareto-Dream/Spectralis", "demo": "https://spectralis.deltavdevs.com"}, {"ship_num": 2, "ts": "2026-08-14T06:50:58Z", "hours": 23.0, "multiplier": 12.89, "payout": 208, "blessing": "neutral", "text": "Spectralis shiplarp — v5.3.0 —shipped it— Notepads. A spin wheel. Dead zones that aren’t OBS-only anymore. Playlists that don’t look like a log file. Spotify that actually behaves. That’s the version. —what’s in it— Notepad system: docked panel, tabs, pop-out window, saves to track tags Spin wheel: weighted entries, saved wheel lists, notepad-fed Dead zones now shift the app’s own layout, not just OBS overlays Spotify: playlist sync, queue, pause, and Discord presence all fixed Fixed: playlist rows missing RowBackground (looked like a terminal, my bad) Fixed: nav rebuilding the entire view every click Fixed: library load blocking window open on big libraries Fixed: spectrum bars snapping instead of moving (FFT overlap bumped to 75%) Fixed: soundcloud playhead, word-mode timestamp export, track-switch click/pop —that’s it— PICKLE!!!", "repo": "https://github.com/Dareto-Dream/Spectralis", "demo": "https://spectralis.deltavdevs.com"}]...
|
[{"post_id": 65615, "ts": "202 [{"post_id": 65615, "ts": "2026-09-10T21:10:25Z", "hours": 9.8333, "text": "Spectralis devlog #44 —Hello again proggers— Did it. Fixed a genuine ton of bugs, following through on the mess from devlog #43. Tempted to just drop 6.1.0 right now, but holding off — want to get a few new features in and brainstorm some more QoL first so this actually feels like a finished product, not just a stopgap. Also: finally going to bed. the bar was “fix the bugs” and I cleared it, going higher anyway Cat or dog? sleep(∞) Okay let’s get into it~ —Yap— Real closure on the websocket/CDN/prod chaos from last devlog. Cleared out a lot in one sitting, and instead of rushing 6.1.0 out the door on relief alone, choosing to actually sit with it a bit longer. —The Great Suffering— 1 — The Bug Backlog, Actually Cleared Worked through the fallout from devlog #43 — websocket issues, the CDN backup failures, all of it — and got a genuine ton of it fixed in one real pass instead of piecemeal patching. 2 — Holding Off On 6.1.0, On Purpose Could ship right now. Choosing not to. Want to work in a few new features and brainstorm more QoL first, so the release feels complete rather than just “the bugs are gone, ship it.” Patience over momentum this time. 3 — Finally Going To Bed After devlog #43’s two-days-no-sleep spiral, actually calling it and going to bed now. Today off is finally getting used the way it was supposed to be used. the sleep debt collector finally caught up —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one about to get real sleep for the first time in a while. Q: Why not just ship 6.1.0 now if the bugs are fixed? A: Because “bug-free” and “actually done” aren’t the same bar, and this one’s worth clearing the second one too. Q: Was this the same chaos from devlog #43? A: Same fires, all put out this round. Q: What kind of new features are being considered? A: Not locked in yet — that brainstorming is the next step, not this devlog. Q: Sleep status, finally? A: Handled. Going now. —This is the end*— *end for now, actual sleep permitting PLAY!!!"}, {"post_id": 65271, "ts": "2026-09-10T08:34:54Z", "hours": 2.5, "text": "Spectralis devlog #43 —Hello again proggers— [2:47am] okay so. websockets again, more of them, and now the CDN backup is failing too which is great, love that for me. on my 4th coffee at this point, energy drink count is starting to get concerning honestly and I’m not gonna pretend it isn’t. pretty sure i debugged the cdn thing at 4am purely out of spite Cat or dog? idk man catch (Exception e) { } at this point Okay let’s get into it, or at least try to~ —Yap— so continuing from devlog #42’s websocket hardening, turns out hardening one part just revealed the next part was also fragile, shocking, anyway. need to push something to prod to actually get it working but can’t do that without interrupting infra which is currently live so that’s a whole separate problem I have to solve first before I can solve the actual problem. love layers. —The Great Suffering— 1 — More Websocket Issues more of them. found while poking at the hardening from last devlog. not sure if figuring this part out took 20 minutes or 3 hours honestly, time’s doing something weird tonight. 2 — CDN Backup Is Failing on top of the websocket stuff, cdn backups just started failing too. not connected to each other as far as i can tell but who knows at this point, everything feels connected at 3am. 3 — Need To Push To Prod, Can’t Without Interrupting Infra the actual fix needs to go to prod but pushing it right now means interrupting live infra, which i don’t want to do blind, so now i need a plan for THAT before the real fix even goes out. process problem wrapped around the actual problem, great. 4 — Shared Play Is Doing The AI-Look Thing Again noticed shared play’s UI is drifting into the same generic-AI-looking territory the main site kept getting flagged for back in devlog #21-#24. damn. gonna have to redo that too. not tonight though, one disaster at a time. 5 — Oh And I Found A Missing Semicolon spent a genuinely embarrassing amount of time on a bug that turned out to be a missing semicolon. send help. actually don’t, just let me suffer, i clearly deserve it at this hour. 6 — No Sleep For 2 Days, Hitting Now it’s catching up. hard. luckily got tomorrow off so plan is stay up tongiht finish this, and just completely pass out tomorrow instead. worth it. probably. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: a human programmer. you. the one reading this at whatever hour you’re reading it, hopefully not also running on 2 days no sleep Q: Is the websocket hardening from #42 actually working? A: mostly? finding more edge cases as i go, which is annoying but also kind of expected honestly Q: Why can’t you just push to prod now? A: because infra’s live and i don’t want to interrupt it blind, need an actual plan for that part first Q: Is shared play getting a full redesign again? A: yeah probably, later though, not adding a 4th fire to tonight Q: Sleep plan? A: none tonight, all of it tomorrow, that’s the whole plan —This is the end — *end for now, semicolons permitting send sleep!!!"}, {"post_id": 65216, "ts": "2026-09-10T06:03:36Z", "hours": 9.7103, "text": "Spectralis devlog #42 —Hello again proggers— Spent this round hardening shared queues, mostly because WebSockets are just genuinely cool and it’s about time they got treated that way in this codebase. a devlog motivated entirely by “websockets are cool” is a valid devlog Cat or dog? ws:// Okay let’s get into it~ —Yap— Shared queues have been functional but not particularly resilient this whole time, riding on shared play’s presence/reactions/queue work from way back in devlog #9. This round was about actually hardening that layer instead of leaving it fragile. —The Great Suffering— 1 — Hardening Shared Queues Went through and shored up a bunch of the underlying bases for shared queues — the stuff that only matters once real connections are dropping, reconnecting, and behaving unpredictably instead of the clean happy-path test case. 2 — Because WebSockets Are Cool Genuinely part of the motivation here. Real-time bidirectional connections are just satisfying to get right, and shared queues are exactly the kind of feature that benefits from taking that layer seriously instead of treating it as plumbing. not every feature needs a dramatic bug story, sometimes it’s just “wanted to do it well” —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one hardening infrastructure purely because it’s fun to get right. Q: Is this related to the shared play work from devlog #9? A: Same general system, this round focused specifically on making the queue layer more resilient. Q: What does “hardening” mean here specifically? A: Making the shared queue behavior hold up better under real conditions — drops, reconnects, timing edge cases — rather than just the clean test path. Q: Any bugs found during this pass? A: Nothing dramatic enough to call out individually, mostly proactive resilience work. Q: What’s next? A: Podcast mode and the randomizer work from devlog #41 are both still ongoing threads. —This is the end*— *end for now, dropped connections permitting P_P!!!"}, {"post_id": 64674, "ts": "2026-09-09T08:17:56Z", "hours": 5.2669, "text": "Spectralis devlog #41 —Hello again proggers— Podcast mode’s in the works, with a real new way to actually find saved podcasts instead of digging for them. Also fixed the randomizing tools so they actually help pick a song instead of just existing decoratively. And: class got canceled for a hurricane watch, so tonight’s an all-nighter by default. free 10 hours courtesy of a hurricane, weird way to get them Cat or dog? shuffle(weighted=True) Okay let’s get into it~ —Yap— Two real features this round plus a forced schedule change. Podcast mode’s genuinely new territory for the app, the randomizer fix is a smaller but meaningful UX improvement, and the hurricane watch just handed over a full night that wasn’t originally planned for grinding. —The Great Suffering— 1 — Podcast Mode, In Progress Building out actual podcast support, including a new way to locate saved podcasts rather than just treating them like any other track and hoping they surface in the right place. Real new territory for the app compared to the music-first feature set so far. 2 — Randomizing Tools, Actually Useful Now The shuffle/randomizer tools existed before but weren’t really doing anything meaningful — mostly there in name. Fixed so they actually aid in song selection now instead of just sitting there as a checkbox nobody trusted. a randomizer that doesn’t actually help you pick anything is just decoration 3 — The Hurricane Watch Situation Class got canceled due to a hurricane watch, which means tonight’s turning into a full grind session that wasn’t originally on the calendar. Silver lining of a weather delay, I suppose. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one getting a bonus grind night courtesy of a hurricane watch. Q: Is podcast mode close to done? A: In progress, this devlog’s the early build phase, not the finish line. Q: What was actually wrong with the randomizer before? A: It existed but didn’t meaningfully help pick songs — more decorative than functional. Fixed to actually aid selection now. Q: Is Song Wars rework from devlog #40 still going? A: Ongoing, this devlog’s focus shifted to podcast mode and the randomizer instead. Q: Stay safe with the hurricane watch, by the way. A: Appreciated. Staying inside, staying coding. —This is the end*— *end for now, hurricane watches permitting POOL!!!"}, {"post_id": 64588, "ts": "2026-09-09T03:01:20Z", "hours": 10.0, "text": "Spectralis devlog #40 —Hello again proggers— 10 straight hours, and the highlight is getting tricked by Suno’s own scraper path. There was a decoy path that looked exactly like the real music endpoint, and it just returned forbidden the whole time. Maybe I’m the bot in this scenario. Unclear. got outsmarted by a decoy URL, humbling Cat or dog? 403 Forbidden Okay let’s get into it~ —Yap— Continuing the reverse-engineering grind from devlog #39, Suno specifically threw a curveball this round. Beyond that, spent real time thinking about what the app actually is and why certain features exist, plus started tearing into Song Wars, which has apparently been quietly buggy for a while. —The Great Suffering— 1 — The Suno Decoy Path Suno provides a path that looks exactly like the real music endpoint, structurally identical, right down to how it responds at a glance. In reality it just returns forbidden every time. Spent real time thinking this was progress before realizing it was a dead end dressed up as a working one. maybe im the bot 2 — Actually Fixed It, After Testing Once the decoy was identified for what it was, found the real path and got it working properly. Testing it thoroughly this time before calling it done, given how devlog #39 went. 3 — Identity Of The App Spent real time thinking through what Spectralis actually is at this point, and justifying why certain features exist rather than just accumulating them because they seemed cool at the time. Less code, more “why does this exist and does it still make sense.” 4 — Song Wars Rework, Started Started tearing into Song Wars, which turns out to be hella buggy underneath. Early stages of a rework rather than a patch job, since patching individual bugs in it hasn’t been holding up. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who got fooled by a decoy API path for a while. Q: Was the Suno issue related to the S3 discovery from devlog #38? A: Same general integration, different specific obstacle this round. Q: Is Song Wars getting a full rewrite or just fixes? A: Leaning toward a real rework rather than more patches, given how buggy it’s turned out to be. Q: What does “identity of the app” work actually produce? A: Not code directly — more a filter for which features actually belong and why, going forward. Q: How’s the 10 hour grind treating you? A: Productive despite the decoy detour. Real progress by the end of it. —This is the end*— *end for now, decoy paths permitting PAP!!!"}, {"post_id": 64321, "ts": "2026-09-08T16:38:31Z", "hours": 11.5997, "text": "Spectralis devlog #39 —Hello again proggers— All-nighter, running on 3 Monsters and a Coke Zero. Reverse engineering APIs is hard as hell, and untitled.stream in particular fought back the whole way. Also snuck in a fix for a Spotify library issue on the side. 3 Monsters and a Coke Zero is not a nutrition plan, it’s a battle strategy Cat or dog? 429 Too Many Requests Okay let’s get into it~ —Yap— Following up on devlog #38’s untitled.stream compat work — turns out “working on it” undersold how hard it actually was. Genuinely brutal reverse engineering session, plus a smaller fix that came out of the same stretch of work. —The Great Suffering— 1 — untitled.stream Was Particularly Hard To Crack Chasing this compatibility since devlog #38, and it turned out to be one of the harder reverse-engineering targets yet. No public API to lean on, so it was the usual slow grind of observing behavior and piecing together how it actually works under the hood. some APIs give up easy, this was not one of them 2 — Reverse Engineering APIs In General: Still Hard Not a new lesson given devlog #17’s whole saga, but worth restating: this category of work is consistently the hardest and slowest kind on the whole project. Going in with better patience and verification habits this time though, which helped. 3 — Spotify Library Polling, Increased Bumped how often libraries get polled to account for some Spotify-side issues that were surfacing. Smaller fix, but a real one, found and shipped in the same session. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who ran on three energy drinks to crack one integration. Q: Is untitled.stream compat actually working now? A: Meaningfully further along after this session, following up from devlog #38’s start on it. Q: Did this go better than devlog #17’s reverse-engineering disaster? A: Yes — hard and slow, but productive this time rather than a total dead end. Q: What was the Spotify polling issue specifically? A: Library state getting out of sync too easily — more frequent polling keeps it closer to accurate. Q: Sleep status? A: Same as every other all-nighter devlog. Not great. Worth it this time though. —This is the end*— *end for now, rate limits permitting PIPSQUEAK!!!"}, {"post_id": 64034, "ts": "2026-09-08T05:01:47Z", "hours": 9.5333, "text": "Spectralis devlog #38 —Hello again proggers— Suno’s integration broke after their latest TOS update, so that got fixed. Also added Discord Rich Presence control for capsules, started chasing down a batch of connections that quietly broke or got dropped over time, and picked up a fun trivia fact along the way: Suno apparently hosts on AWS S3. a TOS update breaking an integration, name a more classic story Cat or dog? S3:// Okay let’s get into it~ —Yap— Mixed bag this round: one reactive fix from an external platform change, one genuinely new feature, and the start of a cleanup pass on integrations that have been quietly rotting since whenever they last got touched. —The Great Suffering— 1 — Suno Integration, Fixed Suno’s newest TOS update broke the existing integration. Patched it back up to work with the new terms. Reactive fix, not a fun one, but necessary. 2 — Capsule DRPC Control Real new feature: Spectralis capsules can now control Discord Rich Presence, so a capsule can show custom status while it’s playing instead of the app just showing generic now-playing info. 3 — Chasing Down Broken And Dropped Connections Going through existing integrations that broke with newer updates on the other end, or that got dropped along the way and never revisited — untitled.stream compatibility being one specific example. Working through the backlog of “this used to work” one at a time. 4 — Suno Hosts On AWS S3 Small fun discovery while poking around the integration: Suno’s hosting is on AWS S3. Not actionable, just neat to know. 5 — Looking For New Platforms Actively looking for what to integrate with next. Feedback on what platforms people actually want would genuinely help shape this. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one whose integration broke because someone else updated a TOS page. Q: What’s DRPC? A: Discord Rich Presence — the status shown under someone’s name in Discord. Capsules can now set custom status through it. Q: What’s untitled.stream compat about? A: One of the connections that broke or got left behind at some point — being actively worked back into shape. Q: What platforms are being considered for new integration? A: Not decided yet, genuinely open to suggestions. Q: Was the Suno fix hard? A: Not conceptually, just annoying — an external change forcing reactive work instead of planned work. Q: What’s the image order now? A: Changed my mind again — meme first, app screenshot second this time. The devlog #37 order didn’t stick. —This is the end*— *end for now, TOS updates permitting POP!!!"}, {"post_id": 63804, "ts": "2026-09-07T19:28:07Z", "hours": 15.4, "text": "Spectralis devlog #37 —Hello again proggers— Working through the feedback wave from the ship, including an upcoming maybe-new streaming service integration. Reverse engineering, again, yay. Also completely forgot Hackclub’s 10 hour limit was a thing and ran 5 hours over it. It’s fine. Everything’s fine. last time reverse engineering a streaming service ate 12 hours and produced nothing, so this is either growth or déjà vu Cat or dog? HKEY_LOCAL_MACHINE Okay let’s get into it~ —Yap— Post-ship feedback turned into real changes fast, and one of them’s a streaming service integration that’s back to reverse-engineering territory — hopefully with better luck than the devlog #17 saga. Also, format note: switching up how devlogs get posted going forward. —The Great Suffering— 1 — Maybe New Streaming Service Support Working on possible support for another streaming service, and since it doesn’t have a public API either, that means reverse engineering again. Learned some hard lessons from devlog #17’s all-nighter about this exact kind of work, applying them here — verifying before implementing, checking whether something’s already patched before sinking hours into it. 2 — 15 Hours, Not 10 Completely lost track of Hackclub’s 10 hour session limit and blew past it by 5 hours. Not the plan, happened anyway, no regrets loud enough to stop it from happening again probably. time limits are more of a guideline when you’re mid-flow 3 — A Format Change, By Request People like the meme format but keep asking to actually see the project itself, which is fair — problem is most of what’s happening is engine work, and a screenshot of raw code just doesn’t communicate much on its own. Going to try posting an actual screenshot as the first image and keep the meme as the second, going forward. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who just blew past a 10 hour limit by half again as much. Q: Is this streaming integration going to end like devlog #17’s did? A: Hoping not — going in more carefully this time given how that one went. Q: Why not just show code screenshots if people want to see the project? A: Raw engine code doesn’t communicate much visually to most people. Trying to find screenshots that actually show something meaningful instead. Q: Will the meme format go away? A: No, staying as image two. Just adding an actual project screenshot as image one. Q: How’s the feedback wave going overall? A: Productive, this streaming service idea being one direct result of it. —This is the end*— *end for now, session limits permitting POSSIBLE!!!"}, {"post_id": 62666, "ts": "2026-09-06T04:36:39Z", "hours": 9.8669, "text": "Spectralis devlog #36 —Hello again proggers— Last log before 6.0.1 tries to ship to everyone. Except Mac, remember? If anyone — and by anyone I mean basically no one — has the app downloaded already, you should see the update land fairly soon. “anyone” carrying a lot of self-deprecation in that sentence Cat or dog? v6.0.1 Okay let’s get into it~ —Yap— Four things landing in this round: video export from devlog #35 finally patched back in properly, the about page expanded, a real EQ upgrade, and more webview bugs cleared out. Then it’s out the door. —The Great Suffering— 1 — Video Export, Actually Patched In Announced back in devlog #35, and this round it’s actually working and patched into the build for real instead of just existing as a headline feature nobody could touch yet. 2 — About Page, Expanded Grew the about page out — more actual content instead of the bare-minimum version it’s had this whole time. 3 — A Far More Advanced EQ System Real upgrade here: new EQ with envelope styling and a handful of presets. Meaningfully more capable than whatever was there before, for anyone who actually cares about shaping their sound instead of just hitting play. 4 — More Webview Bugs, Patched Following the WebView2Host fast-path fix from devlog #9, a few more webview-related bugs got cleared out this round. Apparently that surface keeps finding new ways to misbehave. webview bugs are the gift that keeps on giving 5 — 6.0.1 Ships, Mac Excluded (Still) Same LTS-only policy from devlog #32 applies — Mac isn’t getting 6.0.1 as a minor. Everyone else should see the update land soon. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one about to auto-update basically no one to 6.0.1. Q: Why doesn’t Mac get 6.0.1? A: Same policy from devlog #32 — Mac only gets LTS releases, not minors, unless it’s a Mac-specific patch. Q: What’s new in the EQ system specifically? A: Envelope styling plus a set of presets, a real step up from the previous version. Q: Is video export from devlog #35 fully working now? A: Yes, patched in properly this round. Q: When does 6.0.1 land? A: Fairly soon, per this devlog, for anyone who already has the app installed. —This is the end*— *end for now, update pushes permitting PEBBLE!!!"}, {"post_id": 62302, "ts": "2026-09-05T16:34:34Z", "hours": 9.5667, "text": "Spectralis devlog #35 —Hello again proggers— Long way from v5.3.0, that’s for sure. New ship’s cooking, and it’s built directly off the feedback wave from devlog #33 — took what came in and actually built more on top of it. Also, the big one this round: video export is here. 35 devlogs from “last ship” to this Cat or dog? .mp4 Okay let’s get into it~ —Yap— This one’s a real feedback-driven ship, not just internal roadmap stuff. Fed reports and requests all the way back from devlog #2’s post-first-ship feedback into the app, and video export was the headline addition that came out of it. —The Great Suffering— 1 — Feedback Actually Became Features Everything that came in since devlog #2, right after the very first ship, finally got folded back into this release, not just patched as bugs but expanded into more app. Real loop from “here’s what’s wrong/missing” way back then to “here’s it, fixed and built out” now. 2 — Video Export Is Here For music makers who want something to post — YouTube, Klipy, wherever you’re posting cool stuff — Spectralis can now export video directly instead of just playing audio and visualizers live. Been a long time coming given how much the visualizer/capsule work has built up across devlogs #7, #18, #23, and #29-#30. 3 — This Is The New Ship, Not The Finished One Announcing the direction this round more than closing it out — the surprise from devlog #33/#34 still rides along on this too. Full picture coming as it actually ships. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who just got a whole export pipeline for their trouble. Q: What can video export actually do? A: Exports your visualizer/capsule output as an actual video file, suited for posting to platforms like YouTube or Klipy. Q: Is this the same ship as the Stardance surprise from devlog #34? A: Same overall release window, yes. Q: How much of this came directly from user feedback? A: A meaningful chunk — some of it going all the way back to devlog #2, right after the very first ship. Q: When’s it actually dropping? A: Still in progress. This is the announcement, not the release. —This is the end*— *end for now, export pipelines permitting PS: couldn’t find a good meme this time, so you get corporate gif slop instead. Enjoy. PICKLE!!!"}, {"post_id": 61350, "ts": "2026-09-04T07:08:42Z", "hours": 7.2333, "text": "Spectralis devlog #34 —Hello again proggers— Still on the devlog commits grind. The surprise from devlog #33 is actually finished now, releasing alongside the next Stardance ship as soon as this current one clears. Meanwhile, spent this round scouring the app for small edge cases and UI stuff that’s been quietly overlooked. the surprise is done, the suspense is not Cat or dog? edge_case.md Okay let’s get into it~ —Yap— Two tracks this devlog: the surprise from last time is locked and ready, waiting on the current ship to clear before it goes out with Stardance. In the meantime, doing a proper sweep for the small stuff — edge cases and UI rough edges that don’t show up unless you’re specifically hunting for them. —The Great Suffering— 1 — The Surprise Is Finished Whatever it is, it’s done. Releasing with the next Stardance ship, not this current one — has to clear first. Still not saying what it is. still not telling you, patience 2 — Scouring For Edge Cases Going through the app specifically looking for edge cases that got missed during normal feature work — the inputs and states nobody thinks to test until something breaks in a very specific, very rare way. 3 — UI Stuff That Got Overlooked Alongside the edge cases, hunting down small UI issues that slipped through — spacing, alignment, states that don’t look quite right, the stuff that’s easy to miss when you’re heads-down building instead of using the app like a regular person would. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one hunting edge cases nobody else would think to try. Q: What’s the surprise? A: Patience, my dear child. Q: Why wait for the current ship to clear first? A: Cleaner to let one release settle before stacking the surprise onto the next one. Q: Any specific edge cases found yet? A: Sweep’s ongoing, nothing dramatic enough to call out individually yet. Q: Still not saying what the surprise is? A: Correct. Ask again next devlog. —This is the end*— *end for now, edge cases permitting PERISHABLE!!!"}, {"post_id": 60763, "ts": "2026-09-03T11:03:52Z", "hours": 5.8667, "text": "Spectralis devlog #33 —Hello again proggers— First real wave of feedback since Mac shipped in devlog #32, and it’s been genuinely good. Patching a handful of bugs people actually pointed out, plus one quick clarification for a specific rater who had a question. real users, real feedback, feels different from testing solo Cat or dog? feedback.md Okay let’s get into it~ —Yap— Shipping to actual people instead of just self-testing changes the kind of bugs that surface. Round of patches based directly on what came in, plus a couple of housekeeping notes. —The Great Suffering— 1 — Real Feedback, First Time At This Scale Genuinely solid feedback wave since the Mac release. Different flavor of bug reports than internal testing ever produces — actual usage patterns finding things a solo QA pass wouldn’t. 2 — Patching What Got Pointed Out Working through the specific bugs raised by that feedback. Direct fixes for direct reports, exactly the kind of loop that’s supposed to happen once something’s actually in people’s hands. 3 — Quick Note For A Specific Rater One rater asked about the track used in devlog #1 — it’s a custom remix of “Delete” by Ninjirachi. DM if you want the file. 4 — How To Reach Out For anyone hitting issues with the app: Slack works, or Discord at @deltav0rtex . Genuinely want the reports, keep them coming. 5 — A Surprise Is Coming Next Ship Got something tucked away for the next release that should land well. Not spoiling it here, staying quiet on purpose. Minor patch for this round’s QoL fixes drops within the next two days. teasing it and saying nothing else, that’s the whole bit —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one actually reading feedback instead of guessing what’s broken. Q: How do I report a bug? A: Slack, or Discord — @deltav0rtex . Q: What was that track in devlog #1? A: A custom remix of “Delete” by Ninjirachi. DM for the file if you want it. Q: Is the current bug list from this feedback wave big? A: Manageable, working through it directly rather than batching for a bigger release. Q: Any plans to formalize a feedback/bug channel later? A: Not stated yet, current setup is DMs and Slack for now. Q: What’s the surprise for next ship? A: Not saying. That’s the point of a surprise. Q: When’s the minor QoL patch dropping? A: Within the next two days. —This is the end*— *end for now, bug reports permitting PARABLE!!!"}, {"post_id": 60643, "ts": "2026-09-03T04:06:16Z", "hours": 3.4, "text": "Spectralis devlog #32 —Hello again proggers— Mac’s out. Actually out, actually available, actually done. Took way longer than expected — the site needed updating and every single update script needed fixing before this could actually go out the door clean. “we got mac out” undersells how much site and script work that actually took Cat or dog? .pkg Okay let’s get into it~ —Yap— Closing the loop that started way back in devlog #19 with a borrowed Mac and a hopeful “fingers crossed,” went through the decoding fixes in devlog #28, the platform-assumption hotfix in devlog #26, and now it’s actually shipped. Quick policy reminder while we’re here, since it matters going forward. —The Great Suffering— 1 — The Site Needed Updating First Before Mac could actually go out, the site itself needed real updates to reflect it — new download option, new platform messaging, none of which existed yet. Took a real chunk of the time this release ate. 2 — Every Update Script Needed Fixing Following up on the Windows/Linux-centric script assumptions caught back in devlog #26 — turns out that wasn’t a one-off fix, it touched update scripts broadly. Had to go through and fix them properly for Mac to actually be able to update itself going forward, not just install once. 3 — Mac Is Actually Out After all of that: it’s live. Full journey from borrowed hardware sessions to an actual public release. 4 — Reminder: Mac Only Gets LTS Quick policy note, stated plainly since it matters: Mac only receives LTS releases going forward, not minor updates, unless a minor is a Mac-specific patch. Same access-constraint reasoning from devlog #19 — this isn’t changing anytime soon, so setting the expectation clearly now. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who just found out “ship Mac” secretly meant “rebuild the update pipeline.” Q: Does Mac get every LTS release? A: Yes, every LTS. Just not the minors in between, unless that minor is Mac-specific. Q: Why not give Mac full parity now that it’s out? A: Hardware access is still the bottleneck — same reasoning as devlog #19, testing and building for Mac isn’t a routine, always-available thing yet. Q: What took so long between the decoding fixes in devlog #28 and now? A: Mostly the site and update script work described above — the actual build was closer to ready than the delivery pipeline around it was. Q: Is this the end of the Mac saga? A: The release side, yes. Ongoing maintenance is just going to follow the LTS-only cadence from here. —This is the end*— *end for now, update scripts permitting POP!!!"}, {"post_id": 59211, "ts": "2026-08-31T21:37:18Z", "hours": 9.9, "text": "Spectralis devlog #31 —Hello again proggers— More QoL, a real bug fixed in world editing, and a proper in-depth test run of the whole thing. Honest verdict after actually using it for real: still sucks, still hate it, but it’s at least somewhat usable now. Progress, technically. “somewhat usable” is a real milestone when you started from “actively bad” Cat or dog? node.isCorrupt Okay let’s get into it~ —Yap— World editing’s been the newer, rougher part of the studio since the Godot-inspired redesign in devlog #29. This round was about actually running it through its paces instead of just building on top of it, and that testing found a real problem. —The Great Suffering— 1 — More QoL Another pass of small quality-of-life improvements, continuing the trend from the last couple devlogs. Nothing individually huge, all of it adds up. 2 — The Bad Node Bug Found and fixed a genuinely bad node bug in the world section during testing. The kind of bug that only shows up once you’re actually building real worlds instead of poking at an empty editor. 3 — The In-Depth Test Run Took world editing for a real, thorough run this time instead of a quick sanity check. Built something with actual substance in it and used the tool the way it’s meant to be used. 4 — The Honest Verdict Still sucks. Still hate using it. But after this round of fixes and QoL, it’s crossed into “somewhat usable” territory, which is more than could be said before this session. low bar, cleared, moving on —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who just admitted their own tool still sucks and shipped it anyway. Q: Is world editing done now? A: No, “somewhat usable” is the current state, not “finished.” More work ahead. Q: How bad was the node bug? A: Bad enough to matter, found through actual real-world testing rather than a quick check. Q: Is this related to the layer work from devlog #30? A: Different area — that was capsules/timeline, this is world editing specifically. Q: What’s the plan to make world editing not suck? A: Keep testing it for real, keep fixing what that testing turns up. This devlog’s the start of that loop, not the end. —This is the end*— *end for now, corrupted nodes permitting PAPLE!!!"}, {"post_id": 58336, "ts": "2026-08-30T18:33:09Z", "hours": 9.3333, "text": "Spectralis devlog #30 —Hello again proggers— Following up on the studio redesign from last devlog — actually building inside that new layer system now. Lyric importer, a bezier tool that fought back the whole way, and capsules jumped to full HD. 30 devlogs in and the bezier tool still almost won Cat or dog? bezier.controlPoint Okay let’s get into it~ —Yap— Layers from devlog #29’s redesign got real functionality built on top of them this round, plus a genuinely useful new import path and a resolution bump that should’ve probably happened earlier. —The Great Suffering— 1 — Layer Fixes Cleaned up a handful of issues in the new After Effects-style layer system from last devlog — the kind of rough edges that only show up once you’re actually building real content in it instead of just looking at the layout. 2 — Lyric Importer: Auto Vector Layers + Keyframing New importer that takes lyric timing and automatically generates vector layers, keyframed to match. Turns what used to be manual layer-by-layer, keyframe-by-keyframe setup into an actual import step. Big time save for anything lyric-driven, including future capsules like the demo from devlog #18. 3 — A Few More Bugs, Squashed Small round of additional fixes alongside the bigger items, nothing individually dramatic. 4 — Capsule Resolution: Bumped To Full HD Capsules render at full HD now instead of whatever lower resolution they were capped at before. Straightforward upgrade, noticeably better output. 5 — The Bezier Tool (Which Was Hell) Added a real bezier curve tool to the timeline/layer editing. Genuinely brutal to get right — curve math, control point handling, and making it feel intuitive to actually drag are three different hard problems stacked on top of each other. Worth it, but it fought back the whole way. bezier curves: simple in theory, a nightmare in an actual editor UI 6 — Timeline And Tool QoL Assorted quality-of-life improvements across the timeline and tools generally — the small friction-reduction stuff that adds up once you’re using the studio for real work instead of just testing it. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who just fought a bezier tool and mostly won. Q: Does the lyric importer work with the demo capsule from devlog #18? A: That one was hand-timed and hand-built before this importer existed — this tool’s for making the next ones faster. Q: Why was the bezier tool specifically so hard? A: Curve math, control point interaction, and UI feel all had to work together, and getting any one of them wrong makes the whole tool feel broken. Q: Is full HD the resolution ceiling now, or is higher coming later? A: Full HD is what shipped this round. No commitment yet on going higher. Q: Is the studio redesign from devlog #29 basically done now? A: Getting real functionality built on it, which is a good sign, but still ongoing. —This is the end*— *end for now, control points permitting PALPABLE!!!"}, {"post_id": 57958, "ts": "2026-08-30T09:12:42Z", "hours": 9.7667, "text": "Spectralis devlog #29 —Hello again proggers— The studio’s finally looking like a real UI tool instead of a collection of windows held together by vibes. Two design references pulled this round: Godot for world editing, and Adobe After Effects for capsules. stealing good ideas from great tools is called “design research,” look it up Cat or dog? Ctrl+Shift+F Okay let’s get into it~ —Yap— Studio’s been the least polished part of the whole app for a while, mostly functional, rarely pretty. This round actually leaned into real interface design instead of just adding buttons where they fit, borrowing structure from two tools that already solved similar problems well. —The Great Suffering— 1 — Godot-Inspired World Editing World editing took cues from Godot’s editor layout — the way it structures a scene tree, viewport, and inspector panel together as one coherent workspace instead of scattered windows. Applying that same structural thinking to world editing here, since worlds are conceptually similar: a tree of pieces you’re arranging in space. 2 — After Effects-Inspired Capsules Capsule editing leaned on After Effects instead, specifically the layer/timeline/composition mental model. Capsules are time-based and layered by nature — a story surface, a visualizer, audio all stacked together — so a timeline-and-layers metaphor fits better than a flat property list ever did. 3 — The Studio Finally Feels Like A Tool Combined, these two reference points are what’s pushing the studio from “internal dev utility” toward something that actually feels designed for someone to sit down and use, not just something built incrementally to unblock whatever feature needed it that week. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one borrowing UI patterns from two very different but very good tools. Q: Is this a full rewrite of the studio UI? A: More a restructuring around better mental models than a ground-up rebuild, but it touches a lot of surface area. Q: Why Godot for world editing specifically? A: Scene/viewport/inspector is a well-worn pattern for spatial editing, and worlds are fundamentally a spatial arrangement problem. Q: Why After Effects for capsules? A: Capsules stack time-based layers — story, visualizer, audio — which maps naturally onto a timeline/layers workflow instead of flat settings. Q: Does this connect to the visualizer toolkit grind from devlogs #25-#27? A: Same broader authoring-tools push, yes, this is the UI side catching up to that work. —This is the end*— *end for now, layer panels permitting POP!!!"}, {"post_id": 57408, "ts": "2026-08-29T15:34:29Z", "hours": 8.4333, "text": "Spectralis devlog #28 —Hello again proggers— LTS 6 is out. Genuinely out, not “shipped to nowhere” out like devlog #11. Sleep deprivation’s fully caught up though — first chance I get, I’m passing out on the couch with the cat and that’s non-negotiable at this point. the cat’s getting a co-author credit at this rate Cat or dog? couch, specifically, with the cat, immediately Okay let’s get into it~ —Yap— Long stretch from devlog #26 through here finally paid off. LTS 6 pushed, and the major macOS decoding problems from the borrowed-Mac build sessions actually got fixed. Real progress, real exhaustion, both at once. —The Great Suffering— 1 — LTS 6 Is Out Following the hydra-bug fight in devlog #20, the Electron relearn and Mac hotfix in #26, and the binary format detour in #27 — it’s actually pushed now. Linux and Windows builds are the ones going out first. 2 — Major macOS Decoding Problems, Fixed Following up on the platform-assumption bug from devlog #26, where Windows/Linux-centric scripts choked on Mac being neither — dug into the actual decoding issues on macOS and got the major ones resolved this round. 3 — Mac Release Is Coming, Just Not Today No Mac hardware access again until Monday, so the macOS build follows a bit after Linux/Windows instead of dropping same-day. Same access constraint from devlog #19, still the bottleneck, still the plan. 4 — Sleep Is Winning Officially out of gas. Couch, cat, first available window. This devlog is basically the victory lap before collapsing. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one about to lose consciousness on a couch next to a cat, mission accomplished. Q: Is LTS 6 out for everyone right now? A: Linux and Windows, yes. macOS is coming shortly after once Mac access is available again Monday. Q: Were the macOS decoding problems from the script issue in devlog #26? A: Related territory, yes — once the platform-assumption bug got flagged, the deeper decoding issues underneath it got found and fixed too. Q: Any concerns going into the Mac release specifically? A: Nothing unresolved as of this devlog, but access is still limited to occasional sessions, so timing’s dependent on that. Q: What’s next after this? A: Sleep. Genuinely, actually sleep, before anything else touches this project. —This is the end*— *end for now, couch naps permitting thud Zzzzzz!!!"}, {"post_id": 56861, "ts": "2026-08-28T20:36:45Z", "hours": 9.3, "text": "Spectralis devlog #27 —Hello again proggers— Still going. Decided mid-grind to switch off JSON-based saving entirely and move to a proper binary streamed format instead — faster save/load, way less CPU overhead. Which sounds like a clean upgrade until you realize it means reading books on binary format design that were probably written before I was. my caffeine and my reading list have diverged wildly tonight Cat or dog? BinaryWriter Okay let’s get into it~ —Yap— The pivot away from JSON wasn’t planned going into tonight, it just became obviously worth it partway through the toolkit grind. Now stuck in the part of the process nobody enjoys: documentation, theory, and CS ideation before any of the actual implementation gets to happen. —The Great Suffering— 1 — JSON’s Getting Replaced Moving off JSON-based saving to a binary streamed format. The reasoning’s simple — faster save/load, meaningfully less CPU usage — but simple reasoning doesn’t mean simple implementation. 2 — Reading Books Older Than Me Digging into binary streaming format theory means reading material that predates this whole project by a wide margin, some of it by a lot more than that. Foundational stuff, just not exactly light reading at this hour. 3 — Documentation And Theory Hell Currently deep in the least glamorous part of any format redesign: reading documentation, working through theory, and CS ideation before writing a single line that actually does anything. Necessary, still miserable at 2am. the implementation is the fun part and it’s still hours away 4 — Sun Came Up, Had A Sandwich, Kept Going Watched the sunrise somewhere in the middle of the theory reading. Had an egg and bacon sandwich for breakfast, genuinely delicious, best part of the night so far. No sleep planned until tonight — just powering through on breakfast fuel instead. breakfast during an all-nighter hits different —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one reading format-design theory older than their own project at 2am. Q: Why move off JSON now, mid-grind? A: Became clear it was the right call while working on the visualizer toolkit — better performance characteristics were worth the detour. Q: Is this related to the toolkit from devlog #25/#26? A: Same overall session, this is a scope addition that came up while working on it. Q: When does actual implementation start? A: Once the theory and documentation phase actually resolves. Not there yet. Q: Is tonight ever going to end? A: Not until tonight, apparently — sun’s already up and there’s no sleep planned before then. —This is the end*— *end for now, binary formats permitting PAM!!!"}, {"post_id": 56521, "ts": "2026-08-28T10:00:04Z", "hours": 2.9008, "text": "Spectralis devlog #26 —Hello again proggers— Still grinding the visualizer toolkit from devlog #25. Fueled up properly this time — favorite tunes on, Coke Zero and a Monster Ultra on deck, going the entire night. Also, small detour: past me apparently gave in and used Electron at some point, so present me now has to relearn it from scratch. past me makes decisions present me has to live with, name a more accurate description of software Cat or dog? require(‘electron’) Okay let’s get into it~ —Yap— Two threads tonight: the toolkit grind continuing from last devlog, and a genuinely surprising discovery on the Mac build front that’s going to need its own hotfix branch. —The Great Suffering— 1 — Relearning Electron Past-me committed to Electron somewhere along the way and current-me forgot most of it. Spending part of tonight just getting back up to speed on something that used to be second nature. Annoying, but at least it’s a known quantity once it clicks back in. 2 — The Toolkit, Still Grinding Same visualizer toolkit as devlog #25. Not done yet, but the night’s young and there’s caffeine involved. Hoping to actually close real ground on it before LTS needs to be ready. 3 — Mac Build Actually Compiles Now Following up on devlog #19’s borrowed-Mac session — got it to build and compile this time. Real progress on a front that’s been genuinely hardware-constrained the whole way. 4 — Turns Out Mac Isn’t Windows Or Linux (Shocking, I Know) Here’s the surprising part: a lot of the build scripts turned out to be Windows/Linux-centric, and Mac is, in fact, neither of those operating systems. Somehow this wasn’t obvious until actually staring at a failing script on real Mac hardware. three major desktop OSes and somehow I only accounted for two of them 5 — Hotfix Branch Incoming Need to spin up a hotfix specifically for the platform-assumption problem in the scripts, and hoping it merges back clean without conflicts. Given tonight’s track record so far, cautiously optimistic. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who forgot their own framework choice from past-self. Q: Why Electron in the first place? A: Decision from before this devlog series apparently, reasons unclear at this hour, dealing with the consequences now regardless. Q: Is the Mac hotfix urgent? A: Ties directly into whether LTS with Mac support actually holds together, so yes, fairly urgent. Q: Was assuming Windows/Linux-only scripts really a mistake nobody caught until now? A: Apparently so. Borrowed-Mac hardware access from devlog #19 finally exposed it. Q: Toolkit status vs. hotfix status tonight — which wins? A: Whichever gets further before the caffeine runs out. Probably both get some progress. —This is the end*— *end for now, merge conflicts permitting PROPER!!!"}, {"post_id": 55615, "ts": "2026-08-27T16:05:39Z", "hours": 9.3964, "text": "Spectralis devlog #25 —Hello again proggers— Short one, I’m about to pass out for real this time. Ground away at the visualizer toolkit for a long stretch and it’s still nowhere near done. another one for the “not as close as I thought” pile Cat or dog? too tired to pick one honestly Okay quick version~ —Yap— Same visualizer editor territory from devlog #23, except the format not-changing this time didn’t mean the finish line got any closer. Long grind, real progress somewhere in there probably, just not a done toolkit at the end of it. —The Great Suffering— 1 — The Toolkit Isn’t Close Put in a long stretch on it and it’s genuinely still far from finished. Not a small gap either, just more scope than one exhausted session could close. 2 — I’m Cooked That’s the whole update. No dramatic bug story tonight, just hours in and not enough left to keep going. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who should probably close the laptop now. Q: Is this the same visualizer editor from devlog #23? A: Same one. Still cooking, longer than expected. Q: Any specific blockers? A: Too tired to write them up properly tonight. Next devlog, probably, once there’s actual sleep behind it. Q: When’s it landing? A: Unknown. Not this session. —This is the end*— *end for now, actually sleeping this time POOL!!!"}, {"post_id": 55404, "ts": "2026-08-27T06:36:57Z", "hours": 2.3342, "text": "Spectralis devlog #24 —Hello again proggers— Rewrote the README a third time. Not because it was wrong, because proper prose and actual formatting apparently reads as “completely AI” to whoever’s judging it, and I’m too burnt out to keep arguing that point. So it just got redone instead. can’t fight the vibes, can only rewrite around them Cat or dog? README.md Okay let’s get into it~ —Yap— Small win buried in the exhaustion: website’s on version 4 now and it didn’t get flagged this time. First one that made it through clean since devlog #21 started this whole saga. Progress, even if the README’s now on its third rewrite for reasons that have nothing to do with whether it’s actually good. —The Great Suffering— 1 — README Rewrite #3 Same content, restructured again, because well-formatted prose keeps getting read as an AI tell regardless of who wrote it or how. Not going to keep relitigating this one, just redid it and moved on. 2 — Website v4 Survived The actual good news. Fourth pass on the site, first one that didn’t get flagged. Whatever combination of changes from devlog #21 onward finally landed right. 3 — Hoping The App Gets Checked Next If the docs and the website keep clearing review, maybe eventually the actual app gets looked at instead of just the surface-level stuff around it. That’s the real hope here — less time defending prose formatting, more time on the thing that actually matters. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one whose actual writing keeps getting mistaken for a machine’s. Q: Why does formatted prose get flagged as AI? A: Genuinely unclear, and at this point not worth the energy to keep contesting. Rewriting around it was faster than arguing it. Q: Is this the fourth full website redesign? A: Yes — devlog #14, then #21’s rework, and now this pass, landing clean. Q: Has the app itself ever been flagged? A: Not yet, and that’s sort of the point of this devlog — hoping it stays that way, or at least gets a fair look if it comes up. Q: How’s the burnout? A: Present. Noted. Continuing anyway. —This is the end*— *end for now, formatting opinions permitting PEEL!!!"}, {"post_id": 55123, "ts": "2026-08-26T16:10:50Z", "hours": 2.6669, "text": "Spectralis devlog #23 —Hello again proggers— Introducing the visualizer editor. Been sitting on this one for a while without announcing it, for a very specific reason: every single time it felt ready, the format changed again and “ready” moved further away. Think it’s actually real this time. announced it in my head about six times before this devlog Cat or dog? visualizer.format Okay let’s get into it~ —Yap— Grinding all night on this one, branch and v1 dropping tomorrow. No promises beyond that, just the plan and the fact that this has been quietly cooking for way longer than any single devlog has let on. —The Great Suffering— 1 — Why This Wasn’t Announced Sooner Kept hitting the point where the editor felt done, then rethinking the underlying format and starting that part over. Easier to just not announce something that keeps changing shape than to keep walking back a “it’s ready” claim in public. 2 — v1 And The Branch, Tomorrow Committing to it now — v1 and the branch land tomorrow. Whole night’s going toward getting there, which given the last 22 devlogs of this project is either a great sign or a very familiar warning sign. history suggests: could go either way 3 — What The Visualizer Editor Actually Is A real editor for building visualizers instead of the visualizer side of the app staying built-in-only. Ties back to everything from the capsule/worlds work in devlogs #7 and #8 and the custom visualizer built for the demo capsule in devlog #18 — this is the tool version of doing that by hand. 4 — Hackatime Also Just Died (Or My PC Did) On top of everything else, Hackatime seems to be down, or my PC’s cooked, unclear which yet. Either way tracked hours for tonight are now undefined. Yipee. unlogged hours are the best kind of hours, said nobody’s time tracker ever —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one about to pull yet another all-nighter for a feature reveal. Q: Why did the format keep changing? A: Each pass revealed a new limitation once actually used for real, and fixing that meant reworking the format again rather than shipping something known to be wrong. Q: Is this related to the demo capsule visualizer from devlog #18? A: Same territory. That one was hand-built. This is the editor meant to make building one not require doing it by hand. Q: What’s “v1” mean here specifically? A: First real usable version, branch-only for now, not a full public release yet. Q: Any risk this slips again? A: Always possible given the track record, but committing to tomorrow specifically this time. —This is the end*— *end for now, format stability permitting PEPLE!!!"}, {"post_id": 54323, "ts": "2026-08-25T08:40:49Z", "hours": 4.6333, "text": "Spectralis devlog #22 —Hello again proggers— Posting this before I pass out for real. And no, that wasn’t me faceplanting the keyboard, that was the cat walking across it. Very important distinction. the cat gets a commit credit for that one, honestly Cat or dog? cat, apparently, tonight specifically Okay let’s get into it~ —Yap— Back on the ever-growing pile of bugs and QoL from devlog #20’s hydra fight — turns out killing all the tiny bugs once doesn’t mean they stay dead forever, more just showed up in the meantime. Made real progress anyway. —The Great Suffering— 1 — A Few Spotify Bugs, Actually Squashed Chased down and fixed a handful of Spotify-side bugs this round. Not a full audit like earlier devlogs, just real ground covered on stuff that’s been sitting in the pile. 2 — Resizing QA Went through resizing behavior across the app and did a real QA pass on it — the kind of thing that’s easy to skip until someone resizes a window in a way you never tested and everything looks wrong. 3 — The Multi-Channel Stream Queue Idea Had the idea to implement multi-channel support for Streamer Queue. Started on it, and it’s genuinely probably too big to land fully before LTS ships — most likely going in as a stub for now rather than a finished feature, with the real implementation following after. “horrible idea” is doing some self-aware lifting there and I stand by it —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who mistook a cat for their own exhaustion, and honestly it could’ve gone either way. Q: What’s a “stub” mean for multi-channel here? A: The scaffolding and interface exist, the real functional implementation doesn’t yet. Placeholder with intent, not a real feature. Q: Is this the same bug pile from devlog #20? A: Same pile, refilled since then. Small bugs apparently regenerate on their own schedule, not just when you’re actively fighting them. Q: Why is multi-channel “horrible” if you’re building it anyway? A: Because scope-wise it’s a lot more than it looks like on paper, and admitting that upfront beats pretending it’s simple. Q: Sleep status tonight? A: About to happen, actually, this time. Cat’s taking the credit either way. —This is the end*— *end for now, sleepy cats permitting PEOPLE!!!"}, {"post_id": 54216, "ts": "2026-08-25T03:14:52Z", "hours": 6.1014, "text": "Spectralis devlog #21 —Hello again proggers— Flagged for “AI website” again. By Shipwrights this time. Getting a little tired of this specific accusation, honestly — a commit log sitting right there would show actual work happening over actual time, but apparently that’s a few extra minutes nobody wants to spend. the receipts exist, nobody’s asking to see them Cat or dog? git log –oneline Okay let’s get into it~ —Yap— Third redesign of the site now. Not because the flag was right, but because if this keeps happening it’s worth just making the “looks AI-made” argument harder to make at all, regardless of whether it was ever a fair read in the first place. —The Great Suffering— 1 — Flagged Again Shipwrights flagged the site as AI-generated. Same accusation as the devlog #12-#14 saga, different flagger this time. Slightly more annoying with each repeat, since the actual work history’s right there for anyone willing to look. 2 — The Annoying Part It’s not that the site got flagged, it’s that the disproof is trivially available — commits, timestamps, iterative changes across three separate rebuilds — and checking that apparently isn’t part of the process. Frustrating, not devastating. 3 — Redesigned It A Third Time Rather than fight the flag directly, changed the site again. Third pass now, and it genuinely reads less like generic AI-slop territory than the last version did. Whether that satisfies the next flag or not, it’s a real improvement on its own merits. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who’s redesigned this website three separate times partly to dodge a false flag. Q: What’s Shipwrights? A: The one doing the flagging this round. Q: Is the flag actually accurate? A: No — there’s a real commit history behind the site across devlogs #12 through #14 and now this one. The flag’s wrong, just annoying to keep disproving. Q: Does this redesign replace the one from devlog #14? A: Yes, third full pass on top of that one. Q: Any plan if it gets flagged a fourth time? A: Probably the same plan: keep the receipts, keep improving the site anyway, move on. —This is the end*— *end for now, false flags permitting PALPABLE!!!"}, {"post_id": 53903, "ts": "2026-08-24T16:41:40Z", "hours": 7.9, "text": "Spectralis devlog #20 —Hello again proggers— Two zero. Milestone devlog, and it’s a good one: LTS is about to actually go out the door, Mac included, today. we made it, barely, on no sleep, as tradition demands Cat or dog? git revert HEAD 7 Okay let’s get into it —Yap— Spent the whole night doing QoL and QA on all the tiny bugs that had been getting pushed aside devlog after devlog. Turns out “small bugs” and “easy to fix” are not the same category, and the whole night proved it the hard way. —The Great Suffering— 1 — Hydra Bugs Every single one of the small deferred bugs got patched, and every single patch spawned about three new ones in its place. Fix one, watch three grow back. Felt less like debugging and more like fighting something with a regeneration mechanic. cut off one head, three more show up, name a more accurate bug report 2 — Tried Claude Code Out Of Exhaustion Got tired enough mid-hydra-fight to set up Claude Code and hand off some of the grind. It did not go well — ended up rearranging the repo and commit layout in ways that made the history a mess, not the bugs. 3 — Had To Undo Its Commits Rolled back what Claude Code did and went back to fixing things manually. Lesson for the night: handing off a messy, deep-in-it repo state to an agent mid-crisis is not the same as handing off a clean one. 4 — Actually Got All The Tiny Bugs Out After all of that, the hydra’s actually dead. Every deferred small bug from the last 19 devlogs finally cleared in one sitting, which is the whole reason today’s release is happening at all. 5 — Mac Release, Today Following up on devlog #19’s borrowed-Mac build attempt — releasing to Mac today alongside everything else. First real payoff from that session. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who fought a hydra of bugs all night and won, barely. Q: Did Claude Code actually break anything functional, or just the repo layout? A: Just history and commit structure, nothing shipped broke because of it. Still a mess worth undoing. Q: Is this LTS build the one from devlog #19’s prep? A: Yes, same one. This was the final QA gauntlet before it goes out. Q: Is Mac really getting it today? A: That’s the plan, following through on the borrowed-Mac build session from last devlog. Q: 20 devlogs in, anything you’d do differently? A: Sleep more, probably. Not going to happen, but it’d be the right answer. —This is the end*— *end for now, hydra heads permitting PROPERTY!!!"}, {"post_id": 53619, "ts": "2026-08-24T08:31:21Z", "hours": 4.2003, "text": "Spectralis devlog #19 —Hello again proggers— v6 LTS is on the horizon. Scheduled time with a friend who actually owns a Tim Cook machine, fingers crossed a Mac build comes out the other side of that session actually working. praying to the WWDC gods Cat or dog? arm64 Okay let’s get into it~ —Yap— First real LTS push. Different mindset than the last 18 devlogs of feature work and 3am bug hunts — LTS means stability first, and it also means finally taking a real swing at macOS instead of leaving it as a someday problem. —The Great Suffering— 1 — Prepping For v6 LTS Getting the groundwork in place for the first Long Term Support build. Less “ship the coolest thing,” more “ship the thing that won’t need constant babysitting after release.” 2 — Borrowing A Friend’s Mac Don’t own a Mac. Scheduled dedicated time with a friend’s actual Apple hardware to attempt a real build instead of guessing blind or fighting a CI-only setup with no way to actually test the output. 3 — The Honest Caveat: Mac Support Will Lag Straight talk: limited access to Mac hardware means Mac builds will very likely only get LTS releases going forward, and will land late relative to betas and regular updates on other platforms. Not ideal, but better to say it now than pretend otherwise. can’t test what you can’t touch —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one borrowing a friend’s Mac because Apple hardware access is not a given. Q: Will Mac users get every update? A: Realistically, no — LTS builds only for the foreseeable future, and later than other platforms. Access to hardware is the bottleneck, not desire to support it. Q: Why prioritize LTS over a beta cycle right now? A: Stability’s the actual goal for v6. Betas can come later once the LTS foundation’s solid. Q: Is the Mac build guaranteed to work this session? A: No promises. That’s what “fingers crossed” means. Q: What happens if the Mac session doesn’t go well? A: Try again next time hardware access lines up. Not giving up on it, just constrained by it. —This is the end*— *end for now, Tim Cook machines permitting PRINCIPLE!!!"}, {"post_id": 53545, "ts": "2026-08-24T04:19:31Z", "hours": 7.8, "text": "Spectralis devlog #18 —Hello again proggers— First real demo capsule is live. Not a screenshot, not a “trust me it works” — an actual .spectralis file you can grab and open yourself, right after devlog #17’s night of nothing. Felt good to ship something that isn’t a revert for once. redemption arc, one demo file at a time Cat or dog? demo.spectralis Okay let’s get into it~ —Yap— Wanted the first public demo to actually show off what a capsule can do, not just be a proof of concept nobody can open. So it’s a full one: real track, real hand-timed lyrics, and a visualizer built specifically for it instead of a generic default. —The Great Suffering— 1 — The Demo’s Live demo.spectralis is up at cdn.deltavdevs.com now. First capsule anyone outside this devlog series can actually download and open. 2 — The Track And The Lyrics Built around Black Coast’s “TRNDSTTR” (Lucian Remix). Lyrics for it were timed and written into the capsule by hand — not pulled from some export, actually sat down and did the timing work myself. 3 — The Visualizer’s Custom, Not A Default Also built the visualizer specifically for this capsule instead of shipping the demo with a stock one. Wanted the first thing people see from Spectralis to actually demonstrate what the capsule format can do end to end — audio, synced lyrics, and a visual built to match, all in one file. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one downloading the first real capsule demo. Q: Where’s the demo? A: cdn.deltavdevs.com/spectralis/demo.spectralis — direct download, no wrapper page. Q: Did you write the lyrics yourself or pull them from somewhere? A: Wrote and timed them in by hand for this capsule specifically. Q: Is the visualizer reusable for other capsules? A: Built for this one specifically, but nothing stopping it from getting adapted or reused as a base for others later. Q: Is this what stories/capsules from devlog #7-#8 were building toward? A: Exactly that. This is the first one actually finished and out in the world instead of just being tested locally. —This is the end*— *end for now, capsule downloads permitting PARODY!!!"}, {"post_id": 53182, "ts": "2026-08-23T16:54:15Z", "hours": 12.2667, "text": "Spectralis devlog #17 —Hello again proggers— 12 hours. All-nighter. Zero sleep. Feature isn’t in the app. Nothing shipped. This is the devlog where I explain what an entire night of work bought me, and the honest answer is “a very expensive lesson.” worth it? absolutely not. did i learn something? also debatable Cat or dog? catch (ApiDoesNotExistException) Okay let’s get into it~ —Yap— Got ambitious. Decided Spectralis should integrate with everything — Pandora, Amazon Music, a bunch of other big platforms on top of what already works. Turns out “everything” includes a lot of services that simply don’t offer a public API to integrate with in the first place, and finding that out was not the fast part of the night. —The Great Suffering— 1 — The APIs Just Don’t Exist Pandora, Amazon Music, and others: no public API to build against. Not “hard to find,” not “poorly documented,” just not there. Should’ve been step zero, ended up being the thing that derailed the entire night once discovered mid-build instead of before starting. 2 — So I Built Backdoors Instead Spent a huge chunk of the 12 hours reverse-engineering and building unofficial access paths instead, since the front door didn’t exist. This is the kind of work that eats hours and produces nothing you can point to until it’s fully working, if it ever gets there. 3 — Most Of Them Were Already Patched Implemented several of these backdoor approaches only to find out the platforms had already closed the exact gaps being exploited, sometimes before the implementation was even finished. Built things that were dead on arrival by the time they existed. patched before i even shipped it, incredible timing 4 — Asked Claude, Got A Hallucinated Answer, Followed It Anyway At the point of giving up, asked for a way to make it work anyway. Got a confident-sounding approach back that didn’t actually correspond to anything real, and followed it blindly instead of verifying it first, because by that point it was hour 10-something and verifying things sounded like more effort than it was. 5 — Ripped The Whole Feature Out End state: none of it works, none of it can work without real API access that doesn’t exist, so the entire feature attempt got stripped back out of the codebase. 12 hours, one commit’s worth of net progress, and that commit is the revert. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who just found out platforms without public APIs stay that way for a reason. Q: Is any of this coming back later? A: Not until there’s an actual, real, non-reverse-engineered way in. Not chasing patched backdoors again. Q: Should you have asked Claude earlier instead of at hour 10? A: Probably. Should also have double-checked what it said instead of following it blind at 4am. Two separate lessons from one night. Q: Was any of the 12 hours useful? A: Now know definitively which platforms are and aren’t worth attempting. That’s the only thing salvaged. Q: Sleep status? A: Catastrophic. Handling that before touching code again. —This is the end*— *end for now, actual sleep permitting Im gonna go pass out on the couch ADIOS!!!"}, {"post_id": 52796, "ts": "2026-08-23T04:27:01Z", "hours": 0.6667, "text": "Spectralis devlog #16 —Hello again proggers— Short one. Found the website pipeline issue from devlog #15. Cat or dog? sudo —Yap— It wasn’t the code. It was permissions. The site was calling root but never actually had access to root, which is exactly why it worked fine locally and fell over the second it hit deployment. “It woRKS On My macHiNe” — the oldest curse in software, and I said it unironically. classic —This is the end*— *end for now, root access permitting PAPAYA!!!"}, {"post_id": 52775, "ts": "2026-08-23T03:46:04Z", "hours": 2.0667, "text": "Spectralis devlog #15 —Hello again proggers— I lied. Posted devlog #14 saying the site was done and shipped, and the deploy pipeline crashed basically the second it went out. So that’s fun. On the bright side, v5.4.2 also went out this round, and it’s actually solid. “it’s done” is apparently my curse word Cat or dog? dequeue() Okay let’s get into it~ —Yap— Website pipeline ate itself right after devlog #14 posted, which is its own kind of poetic. Meanwhile the app side had a genuinely good run — six real fixes landed, one of them embarrassing enough to name directly. —The Great Suffering— 1 — The Website Pipeline Crashed Right After I Said It Shipped Devlog #14 said done. Pipeline said otherwise, immediately. Working on getting it back up, this is very much a “developing situation” and not a “resolved” one yet. 2 — Listener Requests Auto-Queue Now Requests from listeners now auto-queue instead of needing a manual step to actually land in the queue. 3 — Audio Literally Never Played, Whoops Exactly what it says. Somewhere in there, audio just wasn’t playing. Found and fixed, extremely glad this one got caught. a music player where the music doesn’t play is a bold minimalist statement 4 — Found It: Join Links Were Missing A Slash Root cause of a chunk of shared-play join weirdness — the links were missing a slash. One character. Fixed, join links actually resolve correctly now. 5 — Host Room Button Actually Tells You Something Now The host room button used to just sit there. Now it actually communicates state back to you instead of leaving you guessing whether anything happened. 6 — Host Room Was Dropping Every Tick Forever Host room had a bug where it was dropping on every single tick, indefinitely, rather than staying stable. Fixed so the room actually holds instead of degrading in real time. 7 — yt-dlp Was 5 Months Stale, Updated The bundled yt-dlp from devlog #10 hadn’t been touched in 5 months. Updated. Stale extraction tooling breaking silently is exactly the kind of thing that sneaks up on you. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who called the website shipped and got immediately humbled by CI. Q: Is the website back up yet? A: Working on it. Genuinely not resolved as of this devlog. Q: How long was audio actually broken for? A: Not specified, but “literally never played” is about as bad as this category of bug gets. Fixed now. Q: Was the missing-slash bug related to the join link work from devlog #9? A: Yes, same feature area, this was the actual root cause of some of the lingering weirdness there. Q: Is 5.4.2 stable? A: As far as testing shows. Same disclaimer as always applies. —This is the end*— *end for now, deploy pipelines permitting PARABLE!!!"}, {"post_id": 52728, "ts": "2026-08-23T01:43:09Z", "hours": 2.1678, "text": "Spectralis devlog #14 —Hello again proggers— Site’s done. Actually done. Got it to a place I actually liked instead of just a place I was tired of looking at, and shipped it. Three devlogs of fighting the generic-AI-look problem and it finally landed somewhere that feels like Spectralis instead of every other landing page on the internet. took long enough Cat or dog? git push origin main Okay let’s get into it~ —Yap— After devlog #12 and #13’s whole ordeal of everything converging on the same generic design no matter what got tried, something finally clicked and stuck. Shipped it. Two honest confessions on the way out the door, might as well log them here instead of pretending otherwise. —The Great Suffering— 1 — It’s Live The full rework from the last two devlogs is done and pushed. Went from “everything looks like AI made it” to something that actually feels intentional. Whatever finally broke the streak, it worked. 2 — The Help & Manuals Tab Is A Placebo Button Full transparency: the Help & Manuals tab on the site exists, looks real, sits right where you’d expect it, and does essentially nothing right now. It’s there because a site without one looks incomplete, not because there’s real content behind it yet. Consider it a placeholder wearing a real button’s clothes. it’s not lying, it’s aspirational 3 — I Copied FL Studio’s Homepage. Hard. Not going to pretend otherwise: leaned on FL Studio’s site pretty heavily for structure and layout ideas here. And honestly, that’s just how this works — programming, design, all of it is borrowing from people who borrowed from the people before them. Nobody’s inventing layout from first principles in 2026. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who finally shipped a website after three devlogs of fighting it. Q: Is Help & Manuals actually going to do anything eventually? A: Presumably, someday. Right now it’s a promise the button is making on behalf of a future devlog. Q: Isn’t copying FL Studio’s homepage kind of a big deal? A: Structure and layout inspiration, not a straight copy-paste. And realistically, every site borrows from something — this one’s just being honest about the source. Q: Did the “everything looks like AI” problem from devlog #13 actually get solved? A: Yes, finally. Whatever changed between then and now worked. Q: What’s next now that the site’s shipped? A: I finally get to ship my project without worrying about AI looking websites —This is the end*— *end for now, placebo buttons permitting PLACEBO!!!"}, {"post_id": 52690, "ts": "2026-08-22T23:32:19Z", "hours": 10.1028, "text": "Spectralis devlog #13 —Hello again proggers— Still on the website. Turns out the “make it not look like AI made it” problem does not have an easy exit — everything ends up looking like AI made it no matter what gets tried. Also had to ask Claude how to center a div. Yes, that div. The one every developer has fought since the dawn of CSS. the irony of asking an AI how to make something look less AI-made is not lost on me Cat or dog? display: flex Okay let’s get into it~ —Yap— Round two on the visual rework from last devlog, and the honest update is: it’s harder than expected. Every direction tried still lands somewhere in “generic modern web design,” which might just be what modern web design looks like right now regardless of who’s making it. —The Great Suffering— 1 — Everything Still Looks Like AI Made It Tried multiple directions this round trying to get away from the generic look. Kept landing back in the same neighborhood anyway. Starting to suspect this isn’t a “try harder” problem, it’s just what the current design language space looks like from basically every angle right now. 2 — Had To Ask Claude How To Center A Div The oldest joke in frontend development, still funny because it’s still true. Got stuck on it anyway. Some things never stop being annoying regardless of how many years of CSS have gone by. flexbox has existed for a decade and this is still where we are 3 — Pulled Up W3Schools For The First Time In Forever Dug up an old W3Schools reference mid-debugging, and it is dusty as hell at this point but the information’s still correct. Sometimes the ancient reference site is exactly what’s needed, aesthetics of the source be damned. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who asked an AI to help make something look less like an AI made it. Q: Did the AI-startup look actually get fixed this round? A: Not fully. Still fighting it. That’s most of this devlog. Q: Why does everything converge on the same generic look? A: Best guess: current tools and current design trends both nudge toward the same handful of patterns, so escaping it takes more than just trying different colors. Q: Is W3Schools still reliable? A: Apparently yes. Dated presentation, correct information. Q: When’s the website actually done? A: Closer than devlog #12, not there yet. Ask devlog #14. —This is the end*— *end for now, centered divs permitting PEPPLE!!!"}, {"post_id": 51936, "ts": "2026-08-21T21:25:25Z", "hours": 10.2181, "text": "Spectralis devlog #12 —Hello again proggers— Website’s getting a real pass. Not new copy this time, actual visual identity work, because it currently reads like every AI startup landing page that ever came out of the middle of California, and Spectralis is not that. gradient blob, bold sans headline, “revolutionize your workflow” — no Cat or dog? theme.css Okay let’s get into it~ —Yap— Not released yet, deliberately. This one’s still in progress, but close enough that it’s worth logging before it’s done instead of only after. The goal’s simple to say and annoying to actually do: stop looking generic. —The Great Suffering— 1 — The AI-Startup Look Had To Go Somewhere along the way the site had drifted into the exact aesthetic every seed-stage AI company in the Bay Area ships with — same fonts, same soft gradients, same layout rhythm everyone’s using because everyone else is using it. None of that says anything about what Spectralis actually is. 2 — Actual Visual Identity Work Working through what the site should look like instead of what’s easy to reach for by default. This is the slow part — not writing more copy, actually deciding what the thing looks like and why, instead of inheriting a template’s opinions by accident. 3 — Not Done, Getting Close Deliberately not shipping this mid-rework. Better to land it as one coherent pass than dribble out half-finished visual changes and confuse anyone who lands on the page in between. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one trying to make a music app’s website stop looking like a fundraising deck. Q: What specifically screamed “AI startup”? A: The general vibe more than any one element — the kind of design every YC-adjacent landing page converges on when nobody makes an active choice. Q: Why not ship incrementally instead of waiting? A: A visual identity rework half-applied looks worse than the thing it’s replacing. Waiting for it to be coherent. Q: How close is close? A: Close. Not “next devlog” close necessarily, but visibly closer than devlog #11 left it. Q: Does this touch the changelog-from-backend system from devlog #5? A: No, that infrastructure stays as-is. This is purely visual. —This is the end*— *end for now, gradient blobs permitting POGO!!!"}, {"post_id": 51267, "ts": "2026-08-20T20:03:38Z", "hours": 1.8481, "text": "Spectralis devlog #11 —Hello again proggers— Docs got a full rework this round. Also turns out v5.4.1 went out to nobody, because it never actually got pushed to the CDN. Tagged, released, announced probably, and completely inaccessible the whole time. shipped a release into a void and called it done Cat or dog? docs/ Okay let’s get into it~ —Yap— Started as a documentation pass and ended with the realization that the last release had been sitting local this whole time instead of where anyone could actually get it. Two very different kinds of work, same devlog. —The Great Suffering— 1 — The Entire Doc Rework Not a touch-up, a full rework. Docs, README, and STANDARDS all got restructured rather than patched in place, since patching them individually over the last several devlogs had left them internally inconsistent with each other and with what the app actually does now. 2 — 5.4.1 Never Made It To The CDN The actual headline bug of this devlog. v5.4.1 shipped, in the sense that it was built, tagged, and probably announced somewhere — but never got pushed to the CDN, meaning nobody could actually download it. Public-facing, and it was quietly broken the whole time until someone noticed. a release that ships to nowhere didn’t really ship 3 — Fixed And Actually Pushed Corrected the CDN push so 5.4.1 is genuinely available now, not just tagged in git looking like it is. Also part of why the doc rework mattered — docs referencing a version nobody could download was its own kind of lie. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who tagged a release and forgot the part where people can actually get it. Q: How long was 5.4.1 unavailable? A: Long enough to be embarrassing, short enough to fix before it became a real problem. Caught during this pass. Q: Why redo the docs entirely instead of patching them again? A: Because incremental doc patches across several devlogs had drifted apart from each other and from the app. A full rework got everything back in sync at once. Q: Is this the same CDN that serves changelogs now (devlog #5)? A: Same one. This time the release binary itself was the thing missing, not just content. Q: Anything else quietly broken that hasn’t surfaced yet? A: Unknown by definition. That’s what the next devlog is for. —This is the end*— *end for now, CDN pushes permitting POPPY!!!"}, {"post_id": 51122, "ts": "2026-08-20T16:50:19Z", "hours": 11.1333, "text": "Spectralis devlog #10 —Hello again proggers— 11 hours, zero sleep, and somewhere in the middle of that a full release went out. v5.4.1, then v5.4.1.2 right behind it because apparently one patch release wasn’t enough punishment for one night. sleep is a scheduling conflict I lost Cat or dog? winmm.dll Okay let’s get into it~ —Yap— Started as a normal patch pass and turned into a full Linux compatibility audit at 3am, because it turns out shipping something cross-platform means actually checking what “cross-platform” was quietly lying about. Found four separate ways the app was secretly Windows-only, fixed all of them, shipped twice. —The Great Suffering— 1 — winmm.dll Doesn’t Exist On Linux, Who Knew Something was calling into winmm.dll directly. Which is a Windows multimedia API. Which does not exist on Linux. Genuinely did not know this was happening until it broke loudly. “who knew” is doing a lot of work in that commit message 2 — Shipped A .exe To Linux, My Bad Somewhere in the build/packaging step, a .exe was ending up in the Linux build. An executable format Linux does not run. Not a subtle bug, just an embarrassing one. 3 — Song Wars Closing = Surprise Alt+F4 Closing Song Wars was apparently also closing the entire app, unprompted, no warning. A feature window doubling as a kill switch is not a feature, it’s a trap. 4 — Yeeted yt-dlp + ffmpeg Into Linux Land, Zero Installs Needed The actual fix underneath most of this: bundled yt-dlp and ffmpeg directly for Linux instead of assuming they’d already be installed system-wide, which they very often weren’t. Zero external installs needed now, it just works out of the box. 5 — Last Page Isn’t A Dead End Anymore Merged in from feature/story-pager-finish — reaching the last page of a story used to just… stop. Dead end, nothing to do. Fixed so it actually resolves properly instead of leaving you stranded on the final page. 6 — Two Releases In One Night v5.4.1 went out, then a second pass turned up enough left over that v5.4.1.2 followed right after. Both merged through staging same night, same sleepless stretch. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who found out about winmm.dll at 3am. Q: Was Spectralis actually broken on Linux before this? A: In at least four distinct ways, yes. Missing binaries, a stray .exe, a Windows-only DLL call, and an app-closing bug. Now fixed. Q: Why two patch releases instead of one? A: v5.4.1 went out, more got found immediately after, and waiting felt worse than just shipping v5.4.1.2 same night. Q: Did you actually not sleep? A: Correct. Not recommending it. Doing it anyway next time, probably. Q: Is Linux actually solid now? A: As solid as one very long, very tired night of testing can confirm. Time will tell the rest. —This is the end*— *end for now, sleep schedules permitting PIBBLE!!!"}, {"post_id": 50150, "ts": "2026-08-19T07:58:44Z", "hours": 5.4667, "text": "Spectralis devlog #9 — 5.4.0 is public —Hello again proggers— 5.4.0 is actually out, publicly, in people’s hands. Diffed v5.3.4 through v5.4.0: 40 commits, Aug 16-18, four threads of work. Cat or dog? spectral.resume() —Yap— Shared play became joinable, Streamer Queue and the Discord bot got hardened, story/visualizer bugs got chased down in one sitting, and some platform/perf issues got caught. None of these were small. —The Great Suffering— 1 — Shared Play Can Be Joined Now spectralis://shared-play/join links used to fall through to nothing. Now routed to a real handler. 2 — Streamer Queue: Host Controls + A Bot That Won’t Die Host can add tracks and mark played/skipped directly, no viewer round-trip. Desktop got an add-to-queue button and history panel. Both pollers (desktop + bot) back off dead rooms instead of hammering them. SQ API calls got a 10s timeout + one retry, GETs only — mutating calls don’t retry, to avoid double-submitting on a timed-out-but-successful response. Bot had zero global error handlers before this. One bad promise took the whole process down silently. Now it logs and survives, plus 3-attempt startup retry. 3 — Story Pages vs. Visualizers: Three Bugs, One Afternoon A capsule with both used to have them fight. Story can now queue a surface behind it — TryAdvancePastStory() swaps in the queued surface on spectral.resume(). Audio was starting under the story before the reader finished — now gated on whether a surface is queued. Once queued, picker/prev-next/keyboard could still hijack it — new IsVisualizerLocked blocks all three (user-picked “Special:” visualizers stay switchable). 4 — Platform + Perf Fixes MP3 decoding silently depended on Windows’ ACM codec via Mp3FileReader. Swapped to NLayer, pure managed decoder — MP3s decode on Linux/macOS now too. WebView2Host inline-rendered small visualizers via NavigateToString, which serves from about:blank with no real origin and tanks frame rate — everything goes through the fast file-backed path now. Auto-cycle switching checked IsLoaded/IsPlaying, both false during Spotify playback since Spotify never loads into the local engine — switched to HasTrack/IsPlaying. And: a regex stripping onclick=”…” had no exception, matched JS identifiers like onSomething =, and being quote-unguarded ate everything to the next stray quote anywhere later in the file. Fixed with a -block carve-out. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who’s been waiting on shared play join links forever. Q: Was shared play really host-only until now? A: Yes. The link existed, it just went nowhere. Q: How bad was the regex bug? A: Silent corruption of unrelated code anywhere later in the file, no error thrown. Very glad it’s found. Q: Is 5.4.0 stable? A: As far as testing shows. That’s what everyone says right before the hotfix. —This is the end*— *end for now, public users permitting PEBBLE!!!"}, {"post_id": 49430, "ts": "2026-08-18T08:25:19Z", "hours": 10.7003, "text": "Spectralis devlog #8 —Hello again proggers— 10 hours 48 minutes. Again. Didn’t plan it, didn’t notice it happening, just looked up and the sun had done a full cycle. This time it was capsules and worlds actually getting built and tested for real instead of just existing in theory. we’ve been here before and we will be here again Cat or dog? Capsule.story + Capsule.visualizer print(f”I try to make stu{2f} which {actually_coexist} {10h48m_later}”) Okay let’s get into it~ —Yap— Stories came back in devlog #7 as a concept. This round was making and testing the first actual .spectralis capsules and worlds built on that concept, which is a different job entirely — turns out “the architecture supports it” and “a real capsule with a real story actually works” are two very different milestones. Also fixed a bug that only shows up once you’re actually testing real capsules instead of imagining them, and a GitHub pull issue that had nothing to do with any of this and ate time anyway. —The Great Suffering— 1 — Building And Testing The First Real Capsules And Worlds Most of the 10 hours 48 minutes, honestly. Going from “stories and worlds work in concept” to actually authoring capsules, loading them, and confirming the hooks — track start, track control, the custom HTML page — behave the way they’re supposed to under real content instead of a test stub. This is the part where theory meets “wait, why is this blank.” 2 — A Story And A Visualizer Couldn’t Both Exist In One Capsule Found this one while testing, not before. A capsule with both a story and a visualizer defined would break, since apparently the two weren’t built to coexist in the same capsule at all. Fixed so a single capsule can hold both without one stepping on the other. the two features that were supposed to be siblings turned out to be enemies 3 — GitHub Was Being Weird About Pulling Somewhere in the middle of all this, git decided pulling wasn’t going to just work. Fixed the pulling issue, which is the kind of fix that has no interesting story attached, it was just broken and then it wasn’t. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who said “quick test” and looked up 10 hours 48 minutes later. Q: Was the story/visualizer bug there since devlog #7? A: Presumably, yes. Nobody had actually tried putting both in one capsule until this round. Q: What does “testing capsules and worlds” actually involve? A: Authoring real ones, loading them in the app, and checking the hooks — track start, track control, custom HTML rendering — behave correctly with actual content, not placeholder data. Q: What was the GitHub pulling issue? A: Not going into detail, it wasn’t interesting, it was just broken. Fixed now. Q: Is this the last capsule/worlds devlog? A: No idea. Ask devlog #9. —This is the end*— *end for now, git remotes permitting PEPPERONI!!!"}, {"post_id": 49210, "ts": "2026-08-17T21:23:21Z", "hours": 10.1667, "text": "Spectralis devlog #7 — welcome 5.4.0 —Hello again proggers— 5.4.0’s out. This one brought back a feature I’d basically buried, hardened two systems that were still a little too trust-me-bro, and finally let shared play open where it should’ve been opening the whole time. Also touched the docs, which I’m choosing to be proud of. Cat or dog? .spectralis print(f”I try to make stu{2f} which {actually_ships} {5.4.0}”) Okay let’s get into it~ —Yap— Big one this round is stories coming back into .spectralis capsules, except not as the thing they used to be — modernized, closer to how album worlds work now, as a proper custom HTML page with real hooks instead of whatever they were before. Rest of the release was hardening and cleanup: Streamer Queue and Discord got a pass to make sure live use doesn’t fall over, shared play finally opens in-app, and the docs stopped lying about what the app actually does. bringing back a feature I killed is a personality trait at this point —The Great Suffering— 1 — Stories Are Back, But Not The Same Stories Old stories concept is back inside .spectralis capsules, rebuilt to match how album worlds work now instead of resurrecting the original implementation as-is. Each one’s a custom HTML page with real hooks into the player — starting tracks, track control, the works — instead of being a static bolt-on. Bringing it back meant actually integrating it with the current architecture, not just copy-pasting the old version back in. 2 — Streamer Queue + Discord Got Hardened Both of these existed and mostly worked, which is different from “survives actually being used live by a streamer with chat moving.” Went through and hardened the interaction between Streamer Queue and the Discord bot — the stuff that only shows up under real load or real edge cases instead of a clean local test run. “mostly works” is doing a lot of lifting in software 3 — Shared Play Opens In App Now Shared play used to need you to go find it. Now there’s an actual open-in-app implementation, so joining a shared room is a real in-app flow instead of a workaround. Small change on paper, but it’s the difference between a feature people use and a feature people forget exists. 4 — Docs, README, and STANDARDS Actually Match Reality Updated the docs, README, and STANDARDS to reflect what’s actually in the app at this point instead of an earlier version of it. Boring work, necessary work, the kind of thing that only gets noticed when it’s wrong. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who buried a feature and then dug it back up two versions later. Q: Why bring stories back instead of leaving them dead? A: Because the concept was good, the old implementation just wasn’t, and album worlds proved the modernized version of the idea actually works. Q: What counts as “hardening” for Streamer Queue and Discord? A: The stuff that only breaks under real conditions — live chat, real timing, real edge cases — not the happy path you get testing solo. Q: Does shared play opening in-app change how sessions work? A: No, same sessions, same presence/reactions/queue from devlog #6. Just a real entry point now instead of a workaround. Q: Anything left over for next time? A: Always. This is a devlog series, not a finish line. —This is the end*— *end for now, capsule hooks permitting 再见!!!"}, {"post_id": 48667, "ts": "2026-08-17T05:02:56Z", "hours": 9.6881, "text": "Spectralis devlog #6 —Hello again proggers— Website stuff wrapped up at the 310ee27 merge, then everything shifted straight into Streamer Queue and shared play. Ten commits deep on dev, plus one fix that’s sitting uncommitted in the working tree because it’s the kind of thing you want to stare at twice before you trust it. Cat or dog? Mp3FileReaderBase print(f”I try to make stu{2f} which {actually_decodes} {cross_platform}”) Okay let’s get into it~ —Yap— Streamer Queue went from “backend endpoints exist” to “actual UI with history and add-to-queue” over the course of ten commits, shared play picked up presence and reactions along the way, and then right at the end I found out the MP3 decoder has been quietly depending on a Windows-only codec this whole time. Great. cross-platform, they said. it’ll be fine, they said —The Great Suffering— 1 — Streamer Queue Backend, Then Actually Wiring It Up 402e2ef–2b74f97 built out the Streamer Queue backend endpoints — host add, mark played, mark skipped — and wired them into the client through a new StreamerQueueViewModel. Backend existing and backend actually being called by anything are two different milestones, and this covered both. 2 — The UI Caught Up 16c4b26 added the add-to-queue button and a history panel, so Streamer Queue stopped being an API you’d have to hit manually and became something that’s actually usable in the app. 3 — Shared Play Learned About Presence and Reactions ecb43e6 and c7a19c2 — shared play now fetches and exposes presence and reaction snapshots straight from the CDN. 7e60e15 then had SharedPlaySessionController pass presence, reactions, and queue through properly instead of any of those three living off on their own. 4 — HostAsync Was Ignoring The Host 92f2079. Found and fixed HostAsync quietly ignoring the host’s actual settings — not great for a feature called “host a shared play session.” the host had opinions the whole time, we just weren’t asking 5 — Preloading and the Full Shared UI 22bc56e preloads the next track into the shared room too, so listeners aren’t waiting on it live. f2df836 (HEAD) rounds it out with listener count, a reactions ticker, and a request list in the shared play UI — the room finally looks like it has people in it. Net diff for this stretch: SectionViewModels.cs (+206), backend/src/main.rs (+103), plus the SharedPlay CDN client/models and StreamerQueueView.axaml. 6 — The Uncommitted One: MP3 Playback Was Windows-Only This Whole Time AudioEngine.cs and VideoExportEngine.cs were both using Mp3FileReader, which under the hood calls Windows’ ACM codec (msacm32.dll) to decompress. Which does not exist on Linux or macOS. Swapping to Mp3FileReaderBase with an NLayer decompressor instead — NLayer.NAudioSupport added to Spectralis.Core.csproj — since NLayer is a pure managed decoder and doesn’t care what OS it’s on. Not committed yet, wanted to sit with it first. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who just found out MP3 playback only worked on one OS. Q: Was Spectralis actually cross-platform before this fix? A: For anything that wasn’t MP3 audio, sure. For MP3 specifically, only on Windows, silently, this whole time. Q: Why leave the audio fix uncommitted? A: Swapping a decoder for something this central deserves a beat of “does this actually sound right” before it goes in, not just “does it build.” Q: What’s the difference between Streamer Queue and the regular request queue? A: Streamer Queue is host-controlled — add, mark played, mark skipped, from the streamer’s side, with its own history panel, separate from the public submission flow. Q: Did shared play or Streamer Queue touch the Discord bot? A: No, this round’s entirely Spectralis.App/Spectralis.Core and the Rust backend. Bot’s untouched. —This is the end*— *end for now, ACM codecs permitting PARROT!!!"}, {"post_id": 48057, "ts": "2026-08-16T10:39:23Z", "hours": 2.2006, "text": "Spectralis devlog #5 —Hello again proggers— This one’s website side, not app side. Less “watches chat and reacts,” more “stop lying to people who land on the page.” Changelogs, copy, and a pile of QoL that all needed doing at once, so they got done at once. Cat or dog? GET /changelog print(f”I try to make stu{2f} which {actually_updates} {2day}”) Okay let’s get into it~ —Yap— The website had drifted into “hardcoded strings and vibes” territory. Changelog was static, copy was doing the thing where every sentence has an exclamation point and says nothing, and a bunch of small friction points had just been sitting there unfixed because none of them were dramatic enough on their own to stop and deal with. death by a thousand papercuts, website edition —The Great Suffering— 1 — Changelogs Moved To The Backend Changelog used to live as static content baked into the site itself, which meant every release meant a redeploy just to update a text block. Now it’s served from the backend, so shipping a new version updates the changelog without touching the frontend at all. Site and release process finally agree with each other. 2 — Marketing Fluff: Removed Went through the copy and cut the stuff that existed to sound exciting instead of to say something. Fewer exclamation points, fewer vague superlatives, more actual sentences about what the thing does. Turns out “it’s fast” means more than “blazingly fast, lightning quick, revolutionary” stacked in one line. RIP to several adjectives, you will not be missed 3 — A Bunch Of Small QoL Fixes The kind of stuff that’s individually boring but collectively the difference between a site that feels maintained and one that doesn’t — broken anchor links, inconsistent spacing that had been “fine for now” for way too long, a couple of buttons that didn’t actually do what their label said, loading states that just weren’t there before. Nothing here gets its own numbered section because none of it deserves one, but all of it needed fixing. 4 — Site and Backend Actually Talk Now With changelogs pulled from the backend, the website stopped being a static artifact that occasionally gets redeployed and started being an actual client of the backend it’s supposed to represent. Small architectural shift, disproportionate amount of relief. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who wrote “blazingly fast” unironically at some point. Q: Why was the changelog static in the first place? A: Because it was easy at the time and “at the time” was a while ago. Q: Is the marketing copy gone entirely now? A: No, just the fluff. The site still has to say what Spectralis does, it just doesn’t need six adjectives to do it. Q: Does this affect the Discord bot or the app? A: No, this one’s website-only. App and bot are untouched this round. Q: What counts as a “small QoL fix” that didn’t get its own section? A: The stuff that’s annoying to list individually but adds up to “the site feels better now.” You’ll notice it without being told what it was. —This is the end*— *end for now, copywriting urges permitting CYA!!!"}, {"post_id": 47986, "ts": "2026-08-16T08:15:58Z", "hours": 11.9667, "text": "Spectralis devlog #4 —Hello again proggers— Uh. So. It’s been 11 hours. We sat down, opened the bot code, and just… didn’t stop. No devlog got posted because posting a devlog requires noticing that time is a thing that’s passing, and that stopped happening somewhere around hour 3. this is fine, this has always been fine Cat or dog? channelLock.ts print(f”I try to make stu{2f} which {actually_locked} {11hrs_later}”) Okay let’s get into it, before I forget more of it~ —Yap— No app changes this round. Zero. Not one line touched in Spectralis.App or Spectralis.Core. This whole stretch was 100% the Discord bot, going from “stubbed slash commands” to “bot that actually watches chat and does something about it.” —The Great Suffering— 1 — Railway Kept Rebuilding Rust For No Reason v5.3.2. Railway was rebuilding the entire backend on every single deploy regardless of whether the Rust actually changed. Pinned the build so it stops doing that. Small fix, saved a genuinely upsetting amount of deploy time. 2 — The Bot Learned to Watch Chat v5.3.3, and the actual reason for the 11 hours. The bot now watches the queue channel and reacts to song submissions as they come in, instead of just sitting there answering slash commands and pretending it doesn’t see anything else happening. 3 — New Files, New Problems messageSubmission.ts showed up to handle reacting to and tracking submitted songs in chat. channelLock.ts showed up next to it to handle locking logic for the watched channel, because a bot watching chat unsupervised is a bot that needs boundaries. 4 — Bot Token Can Now Actually See Things Bumped the bot token’s permissions so it can see and read submissions in the first place, which, in hindsight, was load-bearing for “watches chat and reacts to submissions.” Can’t react to what you can’t read. 5 — New Slash Commands, Existing Ones Got Bigger set-closed-message and set-open-message let streamers customize what shows up when the queue opens or closes instead of eating a hardcoded string. open-queue/close-queue got extended to actually talk to the new messaging and channel-lock logic instead of just flipping a flag and hoping. 6 — Everything Downstream Had to Catch Up db.ts, sqApi.ts, nowPlayingPoller.ts, types.ts, and index.ts all expanded to support the submission-tracking flow end to end. Backend picked up a small related change too, +11/-2 in main.rs, mostly plumbing to support what the bot needed on the other end. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who let this go 11 hours without a devlog. Q: How did 11 hours happen? A: One slash command needed one more file, which needed one more type, which needed the bot to actually be able to read messages, and then the sun came up. Q: Is the C# app okay? A: Untouched and fine. It got the week off. Q: Why does the bot need to watch chat instead of just answering commands? A: Song submissions happen by posting in the channel, not by running a command every time. The bot needed to actually see that to react to and track them. Q: What’s channelLock.ts for? A: Making sure the watched channel behaves predictably while the bot is actively tracking submissions in it, instead of reacting to chaos. Q: Are we caught up on devlogs now? A: This is #4. We are exactly as caught up as we’re going to get. —This is the end*— *end for now, sleep permitting PANCAKES!!!"}, {"post_id": 47399, "ts": "2026-08-15T09:49:05Z", "hours": 5.2097, "text": "Spectralis devlog #3 —Hello again proggers— Back at it. This round wasn’t visualizer polish or UI cleanup, it was Song Wars/SQ backend stuff and a Discord bot that didn’t exist yesterday. Less “make it pretty,” more “make it not lie to people.” Cat or dog? AcceptingSubmissions print(f”I try to make stu{2f} which {actually_closes} {2day}”) Okay let’s get into it~ —Yap— Turns out “turn off the fee toggle” and “actually prevent the fee-gated action” are two different things, and I had only been doing the first one. Also built an entire close-queue flow because apparently streamers want to stop taking requests sometimes, which, fair. And then there’s a Discord bot now. That happened too. scope creep? never heard of her —The Great Suffering— 1 — The Free Skip Loophole Turning off “Skip fee” or “Super Skip fee” removed the option from the public request page (sq.html/sq.js) just fine. What it did NOT do was stop the backend from accepting skip/super-skip attempts anyway — submit, upload, promote, all of it. Toggle says no, server says sure why not. Backend now actually rejects those attempts when the toggle’s off, closing the gap where a disabled tier was quietly still free. the frontend was lying and the backend believed it Still preserved: turning a toggle ON with a $0 amount is a real, intentional free tier. That distinction stays. 2 — Close Queue Didn’t Exist There was a “Queue enabled” toggle, but no way to just… stop taking requests without digging into settings. Added a real AcceptingSubmissions flag, separate from that, plus a one-click “Close Queue”/“Reopen Queue” button right next to “Copy Submit URL” in the header. No settings menu detour required. When closed, the public page still shows now-playing and queue count, just hides the request/skip/super-skip forms behind a “requests are closed” banner. Streamer can keep browsing and playing from the existing queue the whole time, since the app’s queue view was never gated on “enabled” to begin with. 3 — Now Playing Was Just Empty This Whole Time Found this one by accident while wiring Close Queue: the public page’s “Now Playing” section never actually populated for anyone who wasn’t the owner, because the backend just wasn’t sending track info to non-owner viewers. Fixed alongside everything else. 4 — A Discord Bot Shows Up New discord-bot/ folder, Node.js + TypeScript, discord.js, with a full PLANNING.md for the design: PIN-based pairing so the streamer generates a short-lived PIN in-app and runs /link-queue in Discord with no secrets ever touching chat, a scoped bot-token concept kept separate from the full owner token, and a (guildId, channelId) → room mapping so one bot instance can serve many servers. /queue, /request, /skip, /superskip are fully wired against the existing public SQ API and build clean. /link-queue, /close-queue, /open-queue are stubbed with TODOs since they need backend PIN/token endpoints that don’t exist yet, which is now the next backend work item. Everything typechecks and builds clean across the board — Rust release build, Spectralis.App, and the bot’s tsc. —FAQ (no one asked these but they are here)— Q: Why does Spectralis need a Discord bot? A: Because apparently the request queue living only on a web page wasn’t enough surface area. Now it can also live in your server. Q: What’s PIN-based pairing? A: Streamer gets a short-lived PIN in-app, runs one Discord command with it, done. No tokens or secrets ever posted in chat. Q: Anything left over from last devlog? A: Chat template drift is still an EDITH problem, not a Spectralis one. Wrong repo, wrong devlog. —This is the end*— *end for now, PIN endpoints permitting PIZZA!!!"}, {"post_id": 46741, "ts": "2026-08-14T06:44:16Z", "hours": 6.1242, "text": "Spectralis devlog #2 —Hello again proggers— New project, same yapping. This one’s Spectralis — the WinForms-to-Avalonia refugee that somehow ended up with a spin wheel, notepads, dead zones, and Spotify playlist sync bolted onto it. 917 commits deep and counting. Cat or dog? RowBackground print(f”I try to make stu{2f} which {actually_renders} {2day}”) Okay let’s get into it~ —Yap— This stretch was less “one big feature” and more “death by a thousand small horrors,” which honestly might just be what maintaining a music app is. Playlists, now playing, the visualizer pipeline, and a wheel of all things all got touched. a spin wheel. in a music app. sure —The Great Suffering— 1 — Playlists Looked Like a Log File For way too long, the playlist view rendered like plain rows in a terminal instead of, y’know, an app. Turns out library explicitly set RowBackground and playlists just… didn’t. So it fell back to the theme’s default accent-tinted fill on every single row instead of the real styling. One missing property. That’s it. That’s the bug. found staring at my own code for an hour 2 — Every Nav Click Rebuilt The World ContentControl was tearing down and rebuilding the entire section view from scratch on every single navigation click. Fixed by caching views per viewmodel instead of nuking them each time. App feels like it’s not fighting itself anymore. 3 — Library Load Was Blocking the Window From Even Opening Big libraries meant the window just… wouldn’t show up. Load was sitting on the UI thread like it owned the place. Moved off it. Window opens now regardless of how unhinged your library size is. 4 — Spectrum Bars Were Snapping FFT window was running back-to-back instead of overlapping, so spectrum/spectrogram/loudness only actually updated every ~185ms even at 60fps render — bars were snapping to new values instead of moving. Bumped overlap to 75% and eased toward target instead of drawing raw values. Smooth now. Suspiciously smooth. 5 — Notepads and the Wheel Happened Somewhere in here a full notepad feature got built — embed model, tag service, docked panel in now playing, pop-out window, save-to-track-tags — and then immediately got wired into a spin wheel with weighted entries, its own model, and a saved-wheels list. Neither of these were planned at the start of the week. Both exist now. 6 — Spotify Actually Behaves Spotify stopped pausing forever, stopped lying about the queue, stopped refusing to shut up, and playlists now actually sync instead of just vibing. Also Discord presence shows Spotify tracks now instead of just going blank like it forgot what music was. 7 — Small Bugs, Deployed With Extreme Prejudice Soundcloud playhead was showing the previous track’s end position on load, fixed. Word mode wasn’t saving timestamps so exports came out empty, fixed. Track-switch click (and the pop when another app grabs the audio device) got a quick fade instead. Dead zones stopped being OBS-only and now shift the app’s own layout too. —FAQ (no one asked these but they are here)— Q: What is Spectralis? A: A local + Spotify + SoundCloud music player with a visualizer pipeline, OBS integration, and apparently a spin wheel now. Originally WinForms, migrated to Avalonia across 917 commits. Q: Why does a music player need dead zones? A: For OBS overlay layouts — panels and toasts need to know where not to render so they don’t cover your stream elements. It’s a layout constraint system wearing a spooky name. Q: Was the RowBackground bug really just one missing line? A: Yes. I’m still thinking about it. Q: Is the wheel feature load-bearing or a bit? A: Unclear. It has weighted spins, saved wheel lists, and its own viewmodel. Feels load-bearing now. Q: What’s next? A: Whatever the changelog for the version after 5.4.0 ends up needing. Probably something I haven’t broken yet. —This is the end*— *end for now, RowBackground permitting ADIOS!!!😎😎😎😎"}, {"post_id": 27486, "ts": "2026-07-13T02:54:53Z", "hours": 16.6944, "text": "DEVLOG 001 initial setup with hackclub this is the 5th iteration of the spectralis audio visualizer app core features changed: switched from WinForms to AvaloniaUI refined UI design and theming fixed api related issues added streamer support and automated queueing web share audio hosting refinements to the embedded audio visualizer system bug fixes: fixed an issue with the youtube API placeholder fix for Spotify webplayer playback fixed an issue with the viz switcher would “hide” behind the html visualizers"}]...
|
Title: Spectralis by @DeltaVortex | Stardance
Dev Title: Spectralis by @DeltaVortex | Stardance
Devlogs:
DEVLOG 001 initial setup with hackclub this is the 5th iteration of the spectralis audio visualizer app core features changed: switched from WinForms to AvaloniaUI refined UI design and theming fixed api related issues added streamer support and automated queueing web share audio hosting refinements to the embedded audio visualizer system bug fixes: fixed an issue with the youtube API placeholder fix for Spotify webplayer playback fixed an issue with the viz switcher would “hide” behind the html visualizers
Spectralis devlog #2 —Hello again proggers— New project, same yapping. This one’s Spectralis — the WinForms-to-Avalonia refugee that somehow ended up with a spin wheel, notepads, dead zones, and Spotify playlist sync bolted onto it. 917 commits deep and counting. Cat or dog? RowBackground print(f”I try to make stu{2f} which {actually_renders} {2day}”) Okay let’s get into it~ —Yap— This stretch was less “one big feature” and more “death by a thousand small horrors,” which honestly might just be what maintaining a music app is. Playlists, now playing, the visualizer pipeline, and a wheel of all things all got touched. a spin wheel. in a music app. sure —The Great Suffering— 1 — Playlists Looked Like a Log File For way too long, the playlist view rendered like plain rows in a terminal instead of, y’know, an app. Turns out library explicitly set RowBackground and playlists just… didn’t. So it fell back to the theme’s default accent-tinted fill on every single row instead of the real styling. One missing property. That’s it. That’s the bug. found staring at my own code for an hour 2 — Every Nav Click Rebuilt The World ContentControl was tearing down and rebuilding the entire section view from scratch on every single navigation click. Fixed by caching views per viewmodel instead of nuking them each time. App feels like it’s not fighting itself anymore. 3 — Library Load Was Blocking the Window From Even Opening Big libraries meant the window just… wouldn’t show up. Load was sitting on the UI thread like it owned the place. Moved off it. Window opens now regardless of how unhinged your library size is. 4 — Spectrum Bars Were Snapping FFT window was running back-to-back instead of overlapping, so spectrum/spectrogram/loudness only actually updated every ~185ms even at 60fps render — bars were snapping to new values instead of moving. Bumped overlap to 75% and eased toward target instead of drawing raw values. Smooth now. Suspiciously smooth. 5 — Notepads and the Wheel Happened Somewhere in here a full notepad feature got built — embed model, tag service, docked panel in now playing, pop-out window, save-to-track-tags — and then immediately got wired into a spin wheel with weighted entries, its own model, and a saved-wheels list. Neither of these were planned at the start of the week. Both exist now. 6 — Spotify Actually Behaves Spotify stopped pausing forever, stopped lying about the queue, stopped refusing to shut up, and playlists now actually sync instead of just vibing. Also Discord presence shows Spotify tracks now instead of just going blank like it forgot what music was. 7 — Small Bugs, Deployed With Extreme Prejudice Soundcloud playhead was showing the previous track’s end position on load, fixed. Word mode wasn’t saving timestamps so exports came out empty, fixed. Track-switch click (and the pop when another app grabs the audio device) got a quick fade instead. Dead zones stopped being OBS-only and now shift the app’s own layout too. —FAQ (no one asked these but they are here)— Q: What is Spectralis? A: A local + Spotify + SoundCloud music player with a visualizer pipeline, OBS integration, and apparently a spin wheel now. Originally WinForms, migrated to Avalonia across 917 commits. Q: Why does a music player need dead zones? A: For OBS overlay layouts — panels and toasts need to know where not to render so they don’t cover your stream elements. It’s a layout constraint system wearing a spooky name. Q: Was the RowBackground bug really just one missing line? A: Yes. I’m still thinking about it. Q: Is the wheel feature load-bearing or a bit? A: Unclear. It has weighted spins, saved wheel lists, and its own viewmodel. Feels load-bearing now. Q: What’s next? A: Whatever the changelog for the version after 5.4.0 ends up needing. Probably something I haven’t broken yet. —This is the end*— *end for now, RowBackground permitting ADIOS!!!😎😎😎😎
Spectralis devlog #3 —Hello again proggers— Back at it. This round wasn’t visualizer polish or UI cleanup, it was Song Wars/SQ backend stuff and a Discord bot that didn’t exist yesterday. Less “make it pretty,” more “make it not lie to people.” Cat or dog? AcceptingSubmissions print(f”I try to make stu{2f} which {actually_closes} {2day}”) Okay let’s get into it~ —Yap— Turns out “turn off the fee toggle” and “actually prevent the fee-gated action” are two different things, and I had only been doing the first one. Also built an entire close-queue flow because apparently streamers want to stop taking requests sometimes, which, fair. And then there’s a Discord bot now. That happened too. scope creep? never heard of her —The Great Suffering— 1 — The Free Skip Loophole Turning off “Skip fee” or “Super Skip fee” removed the option from the public request page (sq.html/sq.js) just fine. What it did NOT do was stop the backend from accepting skip/super-skip attempts anyway — submit, upload, promote, all of it. Toggle says no, server says sure why not. Backend now actually rejects those attempts when the toggle’s off, closing the gap where a disabled tier was quietly still free. the frontend was lying and the backend believed it Still preserved: turning a toggle ON with a $0 amount is a real, intentional free tier. That distinction stays. 2 — Close Queue Didn’t Exist There was a “Queue enabled” toggle, but no way to just… stop taking requests without digging into settings. Added a real AcceptingSubmissions flag, separate from that, plus a one-click “Close Queue”/“Reopen Queue” button right next to “Copy Submit URL” in the header. No settings menu detour required. When closed, the public page still shows now-playing and queue count, just hides the request/skip/super-skip forms behind a “requests are closed” banner. Streamer can keep browsing and playing from the existing queue the whole time, since the app’s queue view was never gated on “enabled” to begin with. 3 — Now Playing Was Just Empty This Whole Time Found this one by accident while wiring Close Queue: the public page’s “Now Playing” section never actually populated for anyone who wasn’t the owner, because the backend just wasn’t sending track info to non-owner viewers. Fixed alongside everything else. 4 — A Discord Bot Shows Up New discord-bot/ folder, Node.js + TypeScript, discord.js, with a full PLANNING.md for the design: PIN-based pairing so the streamer generates a short-lived PIN in-app and runs /link-queue in Discord with no secrets ever touching chat, a scoped bot-token concept kept separate from the full owner token, and a (guildId, channelId) → room mapping so one bot instance can serve many servers. /queue, /request, /skip, /superskip are fully wired against the existing public SQ API and build clean. /link-queue, /close-queue, /open-queue are stubbed with TODOs since they need backend PIN/token endpoints that don’t exist yet, which is now the next backend work item. Everything typechecks and builds clean across the board — Rust release build, Spectralis.App, and the bot’s tsc. —FAQ (no one asked these but they are here)— Q: Why does Spectralis need a Discord bot? A: Because apparently the request queue living only on a web page wasn’t enough surface area. Now it can also live in your server. Q: What’s PIN-based pairing? A: Streamer gets a short-lived PIN in-app, runs one Discord command with it, done. No tokens or secrets ever posted in chat. Q: Anything left over from last devlog? A: Chat template drift is still an EDITH problem, not a Spectralis one. Wrong repo, wrong devlog. —This is the end*— *end for now, PIN endpoints permitting PIZZA!!!
Spectralis devlog #4 —Hello again proggers— Uh. So. It’s been 11 hours. We sat down, opened the bot code, and just… didn’t stop. No devlog got posted because posting a devlog requires noticing that time is a thing that’s passing, and that stopped happening somewhere around hour 3. this is fine, this has always been fine Cat or dog? channelLock.ts print(f”I try to make stu{2f} which {actually_locked} {11hrs_later}”) Okay let’s get into it, before I forget more of it~ —Yap— No app changes this round. Zero. Not one line touched in Spectralis.App or Spectralis.Core. This whole stretch was 100% the Discord bot, going from “stubbed slash commands” to “bot that actually watches chat and does something about it.” —The Great Suffering— 1 — Railway Kept Rebuilding Rust For No Reason v5.3.2. Railway was rebuilding the entire backend on every single deploy regardless of whether the Rust actually changed. Pinned the build so it stops doing that. Small fix, saved a genuinely upsetting amount of deploy time. 2 — The Bot Learned to Watch Chat v5.3.3, and the actual reason for the 11 hours. The bot now watches the queue channel and reacts to song submissions as they come in, instead of just sitting there answering slash commands and pretending it doesn’t see anything else happening. 3 — New Files, New Problems messageSubmission.ts showed up to handle reacting to and tracking submitted songs in chat. channelLock.ts showed up next to it to handle locking logic for the watched channel, because a bot watching chat unsupervised is a bot that needs boundaries. 4 — Bot Token Can Now Actually See Things Bumped the bot token’s permissions so it can see and read submissions in the first place, which, in hindsight, was load-bearing for “watches chat and reacts to submissions.” Can’t react to what you can’t read. 5 — New Slash Commands, Existing Ones Got Bigger set-closed-message and set-open-message let streamers customize what shows up when the queue opens or closes instead of eating a hardcoded string. open-queue/close-queue got extended to actually talk to the new messaging and channel-lock logic instead of just flipping a flag and hoping. 6 — Everything Downstream Had to Catch Up db.ts, sqApi.ts, nowPlayingPoller.ts, types.ts, and index.ts all expanded to support the submission-tracking flow end to end. Backend picked up a small related change too, +11/-2 in main.rs, mostly plumbing to support what the bot needed on the other end. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who let this go 11 hours without a devlog. Q: How did 11 hours happen? A: One slash command needed one more file, which needed one more type, which needed the bot to actually be able to read messages, and then the sun came up. Q: Is the C# app okay? A: Untouched and fine. It got the week off. Q: Why does the bot need to watch chat instead of just answering commands? A: Song submissions happen by posting in the channel, not by running a command every time. The bot needed to actually see that to react to and track them. Q: What’s channelLock.ts for? A: Making sure the watched channel behaves predictably while the bot is actively tracking submissions in it, instead of reacting to chaos. Q: Are we caught up on devlogs now? A: This is #4. We are exactly as caught up as we’re going to get. —This is the end*— *end for now, sleep permitting PANCAKES!!!
Spectralis devlog #5 —Hello again proggers— This one’s website side, not app side. Less “watches chat and reacts,” more “stop lying to people who land on the page.” Changelogs, copy, and a pile of QoL that all needed doing at once, so they got done at once. Cat or dog? GET /changelog print(f”I try to make stu{2f} which {actually_updates} {2day}”) Okay let’s get into it~ —Yap— The website had drifted into “hardcoded strings and vibes” territory. Changelog was static, copy was doing the thing where every sentence has an exclamation point and says nothing, and a bunch of small friction points had just been sitting there unfixed because none of them were dramatic enough on their own to stop and deal with. death by a thousand papercuts, website edition —The Great Suffering— 1 — Changelogs Moved To The Backend Changelog used to live as static content baked into the site itself, which meant every release meant a redeploy just to update a text block. Now it’s served from the backend, so shipping a new version updates the changelog without touching the frontend at all. Site and release process finally agree with each other. 2 — Marketing Fluff: Removed Went through the copy and cut the stuff that existed to sound exciting instead of to say something. Fewer exclamation points, fewer vague superlatives, more actual sentences about what the thing does. Turns out “it’s fast” means more than “blazingly fast, lightning quick, revolutionary” stacked in one line. RIP to several adjectives, you will not be missed 3 — A Bunch Of Small QoL Fixes The kind of stuff that’s individually boring but collectively the difference between a site that feels maintained and one that doesn’t — broken anchor links, inconsistent spacing that had been “fine for now” for way too long, a couple of buttons that didn’t actually do what their label said, loading states that just weren’t there before. Nothing here gets its own numbered section because none of it deserves one, but all of it needed fixing. 4 — Site and Backend Actually Talk Now With changelogs pulled from the backend, the website stopped being a static artifact that occasionally gets redeployed and started being an actual client of the backend it’s supposed to represent. Small architectural shift, disproportionate amount of relief. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who wrote “blazingly fast” unironically at some point. Q: Why was the changelog static in the first place? A: Because it was easy at the time and “at the time” was a while ago. Q: Is the marketing copy gone entirely now? A: No, just the fluff. The site still has to say what Spectralis does, it just doesn’t need six adjectives to do it. Q: Does this affect the Discord bot or the app? A: No, this one’s website-only. App and bot are untouched this round. Q: What counts as a “small QoL fix” that didn’t get its own section? A: The stuff that’s annoying to list individually but adds up to “the site feels better now.” You’ll notice it without being told what it was. —This is the end*— *end for now, copywriting urges permitting CYA!!!
Spectralis devlog #6 —Hello again proggers— Website stuff wrapped up at the 310ee27 merge, then everything shifted straight into Streamer Queue and shared play. Ten commits deep on dev, plus one fix that’s sitting uncommitted in the working tree because it’s the kind of thing you want to stare at twice before you trust it. Cat or dog? Mp3FileReaderBase print(f”I try to make stu{2f} which {actually_decodes} {cross_platform}”) Okay let’s get into it~ —Yap— Streamer Queue went from “backend endpoints exist” to “actual UI with history and add-to-queue” over the course of ten commits, shared play picked up presence and reactions along the way, and then right at the end I found out the MP3 decoder has been quietly depending on a Windows-only codec this whole time. Great. cross-platform, they said. it’ll be fine, they said —The Great Suffering— 1 — Streamer Queue Backend, Then Actually Wiring It Up 402e2ef–2b74f97 built out the Streamer Queue backend endpoints — host add, mark played, mark skipped — and wired them into the client through a new StreamerQueueViewModel. Backend existing and backend actually being called by anything are two different milestones, and this covered both. 2 — The UI Caught Up 16c4b26 added the add-to-queue button and a history panel, so Streamer Queue stopped being an API you’d have to hit manually and became something that’s actually usable in the app. 3 — Shared Play Learned About Presence and Reactions ecb43e6 and c7a19c2 — shared play now fetches and exposes presence and reaction snapshots straight from the CDN. 7e60e15 then had SharedPlaySessionController pass presence, reactions, and queue through properly instead of any of those three living off on their own. 4 — HostAsync Was Ignoring The Host 92f2079. Found and fixed HostAsync quietly ignoring the host’s actual settings — not great for a feature called “host a shared play session.” the host had opinions the whole time, we just weren’t asking 5 — Preloading and the Full Shared UI 22bc56e preloads the next track into the shared room too, so listeners aren’t waiting on it live. f2df836 (HEAD) rounds it out with listener count, a reactions ticker, and a request list in the shared play UI — the room finally looks like it has people in it. Net diff for this stretch: SectionViewModels.cs (+206), backend/src/main.rs (+103), plus the SharedPlay CDN client/models and StreamerQueueView.axaml. 6 — The Uncommitted One: MP3 Playback Was Windows-Only This Whole Time AudioEngine.cs and VideoExportEngine.cs were both using Mp3FileReader, which under the hood calls Windows’ ACM codec (msacm32.dll) to decompress. Which does not exist on Linux or macOS. Swapping to Mp3FileReaderBase with an NLayer decompressor instead — NLayer.NAudioSupport added to Spectralis.Core.csproj — since NLayer is a pure managed decoder and doesn’t care what OS it’s on. Not committed yet, wanted to sit with it first. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who just found out MP3 playback only worked on one OS. Q: Was Spectralis actually cross-platform before this fix? A: For anything that wasn’t MP3 audio, sure. For MP3 specifically, only on Windows, silently, this whole time. Q: Why leave the audio fix uncommitted? A: Swapping a decoder for something this central deserves a beat of “does this actually sound right” before it goes in, not just “does it build.” Q: What’s the difference between Streamer Queue and the regular request queue? A: Streamer Queue is host-controlled — add, mark played, mark skipped, from the streamer’s side, with its own history panel, separate from the public submission flow. Q: Did shared play or Streamer Queue touch the Discord bot? A: No, this round’s entirely Spectralis.App/Spectralis.Core and the Rust backend. Bot’s untouched. —This is the end*— *end for now, ACM codecs permitting PARROT!!!
Spectralis devlog #7 — welcome 5.4.0 —Hello again proggers— 5.4.0’s out. This one brought back a feature I’d basically buried, hardened two systems that were still a little too trust-me-bro, and finally let shared play open where it should’ve been opening the whole time. Also touched the docs, which I’m choosing to be proud of. Cat or dog? .spectralis print(f”I try to make stu{2f} which {actually_ships} {5.4.0}”) Okay let’s get into it~ —Yap— Big one this round is stories coming back into .spectralis capsules, except not as the thing they used to be — modernized, closer to how album worlds work now, as a proper custom HTML page with real hooks instead of whatever they were before. Rest of the release was hardening and cleanup: Streamer Queue and Discord got a pass to make sure live use doesn’t fall over, shared play finally opens in-app, and the docs stopped lying about what the app actually does. bringing back a feature I killed is a personality trait at this point —The Great Suffering— 1 — Stories Are Back, But Not The Same Stories Old stories concept is back inside .spectralis capsules, rebuilt to match how album worlds work now instead of resurrecting the original implementation as-is. Each one’s a custom HTML page with real hooks into the player — starting tracks, track control, the works — instead of being a static bolt-on. Bringing it back meant actually integrating it with the current architecture, not just copy-pasting the old version back in. 2 — Streamer Queue + Discord Got Hardened Both of these existed and mostly worked, which is different from “survives actually being used live by a streamer with chat moving.” Went through and hardened the interaction between Streamer Queue and the Discord bot — the stuff that only shows up under real load or real edge cases instead of a clean local test run. “mostly works” is doing a lot of lifting in software 3 — Shared Play Opens In App Now Shared play used to need you to go find it. Now there’s an actual open-in-app implementation, so joining a shared room is a real in-app flow instead of a workaround. Small change on paper, but it’s the difference between a feature people use and a feature people forget exists. 4 — Docs, README, and STANDARDS Actually Match Reality Updated the docs, README, and STANDARDS to reflect what’s actually in the app at this point instead of an earlier version of it. Boring work, necessary work, the kind of thing that only gets noticed when it’s wrong. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who buried a feature and then dug it back up two versions later. Q: Why bring stories back instead of leaving them dead? A: Because the concept was good, the old implementation just wasn’t, and album worlds proved the modernized version of the idea actually works. Q: What counts as “hardening” for Streamer Queue and Discord? A: The stuff that only breaks under real conditions — live chat, real timing, real edge cases — not the happy path you get testing solo. Q: Does shared play opening in-app change how sessions work? A: No, same sessions, same presence/reactions/queue from devlog #6. Just a real entry point now instead of a workaround. Q: Anything left over for next time? A: Always. This is a devlog series, not a finish line. —This is the end*— *end for now, capsule hooks permitting 再见!!!
Spectralis devlog #8 —Hello again proggers— 10 hours 48 minutes. Again. Didn’t plan it, didn’t notice it happening, just looked up and the sun had done a full cycle. This time it was capsules and worlds actually getting built and tested for real instead of just existing in theory. we’ve been here before and we will be here again Cat or dog? Capsule.story + Capsule.visualizer print(f”I try to make stu{2f} which {actually_coexist} {10h48m_later}”) Okay let’s get into it~ —Yap— Stories came back in devlog #7 as a concept. This round was making and testing the first actual .spectralis capsules and worlds built on that concept, which is a different job entirely — turns out “the architecture supports it” and “a real capsule with a real story actually works” are two very different milestones. Also fixed a bug that only shows up once you’re actually testing real capsules instead of imagining them, and a GitHub pull issue that had nothing to do with any of this and ate time anyway. —The Great Suffering— 1 — Building And Testing The First Real Capsules And Worlds Most of the 10 hours 48 minutes, honestly. Going from “stories and worlds work in concept” to actually authoring capsules, loading them, and confirming the hooks — track start, track control, the custom HTML page — behave the way they’re supposed to under real content instead of a test stub. This is the part where theory meets “wait, why is this blank.” 2 — A Story And A Visualizer Couldn’t Both Exist In One Capsule Found this one while testing, not before. A capsule with both a story and a visualizer defined would break, since apparently the two weren’t built to coexist in the same capsule at all. Fixed so a single capsule can hold both without one stepping on the other. the two features that were supposed to be siblings turned out to be enemies 3 — GitHub Was Being Weird About Pulling Somewhere in the middle of all this, git decided pulling wasn’t going to just work. Fixed the pulling issue, which is the kind of fix that has no interesting story attached, it was just broken and then it wasn’t. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who said “quick test” and looked up 10 hours 48 minutes later. Q: Was the story/visualizer bug there since devlog #7? A: Presumably, yes. Nobody had actually tried putting both in one capsule until this round. Q: What does “testing capsules and worlds” actually involve? A: Authoring real ones, loading them in the app, and checking the hooks — track start, track control, custom HTML rendering — behave correctly with actual content, not placeholder data. Q: What was the GitHub pulling issue? A: Not going into detail, it wasn’t interesting, it was just broken. Fixed now. Q: Is this the last capsule/worlds devlog? A: No idea. Ask devlog #9. —This is the end*— *end for now, git remotes permitting PEPPERONI!!!
Spectralis devlog #9 — 5.4.0 is public —Hello again proggers— 5.4.0 is actually out, publicly, in people’s hands. Diffed v5.3.4 through v5.4.0: 40 commits, Aug 16-18, four threads of work. Cat or dog? spectral.resume() —Yap— Shared play became joinable, Streamer Queue and the Discord bot got hardened, story/visualizer bugs got chased down in one sitting, and some platform/perf issues got caught. None of these were small. —The Great Suffering— 1 — Shared Play Can Be Joined Now spectralis://shared-play/join links used to fall through to nothing. Now routed to a real handler. 2 — Streamer Queue: Host Controls + A Bot That Won’t Die Host can add tracks and mark played/skipped directly, no viewer round-trip. Desktop got an add-to-queue button and history panel. Both pollers (desktop + bot) back off dead rooms instead of hammering them. SQ API calls got a 10s timeout + one retry, GETs only — mutating calls don’t retry, to avoid double-submitting on a timed-out-but-successful response. Bot had zero global error handlers before this. One bad promise took the whole process down silently. Now it logs and survives, plus 3-attempt startup retry. 3 — Story Pages vs. Visualizers: Three Bugs, One Afternoon A capsule with both used to have them fight. Story can now queue a surface behind it — TryAdvancePastStory() swaps in the queued surface on spectral.resume(). Audio was starting under the story before the reader finished — now gated on whether a surface is queued. Once queued, picker/prev-next/keyboard could still hijack it — new IsVisualizerLocked blocks all three (user-picked “Special:” visualizers stay switchable). 4 — Platform + Perf Fixes MP3 decoding silently depended on Windows’ ACM codec via Mp3FileReader. Swapped to NLayer, pure managed decoder — MP3s decode on Linux/macOS now too. WebView2Host inline-rendered small visualizers via NavigateToString, which serves from about:blank with no real origin and tanks frame rate — everything goes through the fast file-backed path now. Auto-cycle switching checked IsLoaded/IsPlaying, both false during Spotify playback since Spotify never loads into the local engine — switched to HasTrack/IsPlaying. And: a regex stripping onclick=”…” had no exception, matched JS identifiers like onSomething =, and being quote-unguarded ate everything to the next stray quote anywhere later in the file. Fixed with a -block carve-out. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who’s been waiting on shared play join links forever. Q: Was shared play really host-only until now? A: Yes. The link existed, it just went nowhere. Q: How bad was the regex bug? A: Silent corruption of unrelated code anywhere later in the file, no error thrown. Very glad it’s found. Q: Is 5.4.0 stable? A: As far as testing shows. That’s what everyone says right before the hotfix. —This is the end*— *end for now, public users permitting PEBBLE!!!
Spectralis devlog #10 —Hello again proggers— 11 hours, zero sleep, and somewhere in the middle of that a full release went out. v5.4.1, then v5.4.1.2 right behind it because apparently one patch release wasn’t enough punishment for one night. sleep is a scheduling conflict I lost Cat or dog? winmm.dll Okay let’s get into it~ —Yap— Started as a normal patch pass and turned into a full Linux compatibility audit at 3am, because it turns out shipping something cross-platform means actually checking what “cross-platform” was quietly lying about. Found four separate ways the app was secretly Windows-only, fixed all of them, shipped twice. —The Great Suffering— 1 — winmm.dll Doesn’t Exist On Linux, Who Knew Something was calling into winmm.dll directly. Which is a Windows multimedia API. Which does not exist on Linux. Genuinely did not know this was happening until it broke loudly. “who knew” is doing a lot of work in that commit message 2 — Shipped A .exe To Linux, My Bad Somewhere in the build/packaging step, a .exe was ending up in the Linux build. An executable format Linux does not run. Not a subtle bug, just an embarrassing one. 3 — Song Wars Closing = Surprise Alt+F4 Closing Song Wars was apparently also closing the entire app, unprompted, no warning. A feature window doubling as a kill switch is not a feature, it’s a trap. 4 — Yeeted yt-dlp + ffmpeg Into Linux Land, Zero Installs Needed The actual fix underneath most of this: bundled yt-dlp and ffmpeg directly for Linux instead of assuming they’d already be installed system-wide, which they very often weren’t. Zero external installs needed now, it just works out of the box. 5 — Last Page Isn’t A Dead End Anymore Merged in from feature/story-pager-finish — reaching the last page of a story used to just… stop. Dead end, nothing to do. Fixed so it actually resolves properly instead of leaving you stranded on the final page. 6 — Two Releases In One Night v5.4.1 went out, then a second pass turned up enough left over that v5.4.1.2 followed right after. Both merged through staging same night, same sleepless stretch. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who found out about winmm.dll at 3am. Q: Was Spectralis actually broken on Linux before this? A: In at least four distinct ways, yes. Missing binaries, a stray .exe, a Windows-only DLL call, and an app-closing bug. Now fixed. Q: Why two patch releases instead of one? A: v5.4.1 went out, more got found immediately after, and waiting felt worse than just shipping v5.4.1.2 same night. Q: Did you actually not sleep? A: Correct. Not recommending it. Doing it anyway next time, probably. Q: Is Linux actually solid now? A: As solid as one very long, very tired night of testing can confirm. Time will tell the rest. —This is the end*— *end for now, sleep schedules permitting PIBBLE!!!
Spectralis devlog #11 —Hello again proggers— Docs got a full rework this round. Also turns out v5.4.1 went out to nobody, because it never actually got pushed to the CDN. Tagged, released, announced probably, and completely inaccessible the whole time. shipped a release into a void and called it done Cat or dog? docs/ Okay let’s get into it~ —Yap— Started as a documentation pass and ended with the realization that the last release had been sitting local this whole time instead of where anyone could actually get it. Two very different kinds of work, same devlog. —The Great Suffering— 1 — The Entire Doc Rework Not a touch-up, a full rework. Docs, README, and STANDARDS all got restructured rather than patched in place, since patching them individually over the last several devlogs had left them internally inconsistent with each other and with what the app actually does now. 2 — 5.4.1 Never Made It To The CDN The actual headline bug of this devlog. v5.4.1 shipped, in the sense that it was built, tagged, and probably announced somewhere — but never got pushed to the CDN, meaning nobody could actually download it. Public-facing, and it was quietly broken the whole time until someone noticed. a release that ships to nowhere didn’t really ship 3 — Fixed And Actually Pushed Corrected the CDN push so 5.4.1 is genuinely available now, not just tagged in git looking like it is. Also part of why the doc rework mattered — docs referencing a version nobody could download was its own kind of lie. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who tagged a release and forgot the part where people can actually get it. Q: How long was 5.4.1 unavailable? A: Long enough to be embarrassing, short enough to fix before it became a real problem. Caught during this pass. Q: Why redo the docs entirely instead of patching them again? A: Because incremental doc patches across several devlogs had drifted apart from each other and from the app. A full rework got everything back in sync at once. Q: Is this the same CDN that serves changelogs now (devlog #5)? A: Same one. This time the release binary itself was the thing missing, not just content. Q: Anything else quietly broken that hasn’t surfaced yet? A: Unknown by definition. That’s what the next devlog is for. —This is the end*— *end for now, CDN pushes permitting POPPY!!!
Spectralis devlog #12 —Hello again proggers— Website’s getting a real pass. Not new copy this time, actual visual identity work, because it currently reads like every AI startup landing page that ever came out of the middle of California, and Spectralis is not that. gradient blob, bold sans headline, “revolutionize your workflow” — no Cat or dog? theme.css Okay let’s get into it~ —Yap— Not released yet, deliberately. This one’s still in progress, but close enough that it’s worth logging before it’s done instead of only after. The goal’s simple to say and annoying to actually do: stop looking generic. —The Great Suffering— 1 — The AI-Startup Look Had To Go Somewhere along the way the site had drifted into the exact aesthetic every seed-stage AI company in the Bay Area ships with — same fonts, same soft gradients, same layout rhythm everyone’s using because everyone else is using it. None of that says anything about what Spectralis actually is. 2 — Actual Visual Identity Work Working through what the site should look like instead of what’s easy to reach for by default. This is the slow part — not writing more copy, actually deciding what the thing looks like and why, instead of inheriting a template’s opinions by accident. 3 — Not Done, Getting Close Deliberately not shipping this mid-rework. Better to land it as one coherent pass than dribble out half-finished visual changes and confuse anyone who lands on the page in between. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one trying to make a music app’s website stop looking like a fundraising deck. Q: What specifically screamed “AI startup”? A: The general vibe more than any one element — the kind of design every YC-adjacent landing page converges on when nobody makes an active choice. Q: Why not ship incrementally instead of waiting? A: A visual identity rework half-applied looks worse than the thing it’s replacing. Waiting for it to be coherent. Q: How close is close? A: Close. Not “next devlog” close necessarily, but visibly closer than devlog #11 left it. Q: Does this touch the changelog-from-backend system from devlog #5? A: No, that infrastructure stays as-is. This is purely visual. —This is the end*— *end for now, gradient blobs permitting POGO!!!
Spectralis devlog #13 —Hello again proggers— Still on the website. Turns out the “make it not look like AI made it” problem does not have an easy exit — everything ends up looking like AI made it no matter what gets tried. Also had to ask Claude how to center a div. Yes, that div. The one every developer has fought since the dawn of CSS. the irony of asking an AI how to make something look less AI-made is not lost on me Cat or dog? display: flex Okay let’s get into it~ —Yap— Round two on the visual rework from last devlog, and the honest update is: it’s harder than expected. Every direction tried still lands somewhere in “generic modern web design,” which might just be what modern web design looks like right now regardless of who’s making it. —The Great Suffering— 1 — Everything Still Looks Like AI Made It Tried multiple directions this round trying to get away from the generic look. Kept landing back in the same neighborhood anyway. Starting to suspect this isn’t a “try harder” problem, it’s just what the current design language space looks like from basically every angle right now. 2 — Had To Ask Claude How To Center A Div The oldest joke in frontend development, still funny because it’s still true. Got stuck on it anyway. Some things never stop being annoying regardless of how many years of CSS have gone by. flexbox has existed for a decade and this is still where we are 3 — Pulled Up W3Schools For The First Time In Forever Dug up an old W3Schools reference mid-debugging, and it is dusty as hell at this point but the information’s still correct. Sometimes the ancient reference site is exactly what’s needed, aesthetics of the source be damned. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who asked an AI to help make something look less like an AI made it. Q: Did the AI-startup look actually get fixed this round? A: Not fully. Still fighting it. That’s most of this devlog. Q: Why does everything converge on the same generic look? A: Best guess: current tools and current design trends both nudge toward the same handful of patterns, so escaping it takes more than just trying different colors. Q: Is W3Schools still reliable? A: Apparently yes. Dated presentation, correct information. Q: When’s the website actually done? A: Closer than devlog #12, not there yet. Ask devlog #14. —This is the end*— *end for now, centered divs permitting PEPPLE!!!
Spectralis devlog #14 —Hello again proggers— Site’s done. Actually done. Got it to a place I actually liked instead of just a place I was tired of looking at, and shipped it. Three devlogs of fighting the generic-AI-look problem and it finally landed somewhere that feels like Spectralis instead of every other landing page on the internet. took long enough Cat or dog? git push origin main Okay let’s get into it~ —Yap— After devlog #12 and #13’s whole ordeal of everything converging on the same generic design no matter what got tried, something finally clicked and stuck. Shipped it. Two honest confessions on the way out the door, might as well log them here instead of pretending otherwise. —The Great Suffering— 1 — It’s Live The full rework from the last two devlogs is done and pushed. Went from “everything looks like AI made it” to something that actually feels intentional. Whatever finally broke the streak, it worked. 2 — The Help & Manuals Tab Is A Placebo Button Full transparency: the Help & Manuals tab on the site exists, looks real, sits right where you’d expect it, and does essentially nothing right now. It’s there because a site without one looks incomplete, not because there’s real content behind it yet. Consider it a placeholder wearing a real button’s clothes. it’s not lying, it’s aspirational 3 — I Copied FL Studio’s Homepage. Hard. Not going to pretend otherwise: leaned on FL Studio’s site pretty heavily for structure and layout ideas here. And honestly, that’s just how this works — programming, design, all of it is borrowing from people who borrowed from the people before them. Nobody’s inventing layout from first principles in 2026. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who finally shipped a website after three devlogs of fighting it. Q: Is Help & Manuals actually going to do anything eventually? A: Presumably, someday. Right now it’s a promise the button is making on behalf of a future devlog. Q: Isn’t copying FL Studio’s homepage kind of a big deal? A: Structure and layout inspiration, not a straight copy-paste. And realistically, every site borrows from something — this one’s just being honest about the source. Q: Did the “everything looks like AI” problem from devlog #13 actually get solved? A: Yes, finally. Whatever changed between then and now worked. Q: What’s next now that the site’s shipped? A: I finally get to ship my project without worrying about AI looking websites —This is the end*— *end for now, placebo buttons permitting PLACEBO!!!
Spectralis devlog #15 —Hello again proggers— I lied. Posted devlog #14 saying the site was done and shipped, and the deploy pipeline crashed basically the second it went out. So that’s fun. On the bright side, v5.4.2 also went out this round, and it’s actually solid. “it’s done” is apparently my curse word Cat or dog? dequeue() Okay let’s get into it~ —Yap— Website pipeline ate itself right after devlog #14 posted, which is its own kind of poetic. Meanwhile the app side had a genuinely good run — six real fixes landed, one of them embarrassing enough to name directly. —The Great Suffering— 1 — The Website Pipeline Crashed Right After I Said It Shipped Devlog #14 said done. Pipeline said otherwise, immediately. Working on getting it back up, this is very much a “developing situation” and not a “resolved” one yet. 2 — Listener Requests Auto-Queue Now Requests from listeners now auto-queue instead of needing a manual step to actually land in the queue. 3 — Audio Literally Never Played, Whoops Exactly what it says. Somewhere in there, audio just wasn’t playing. Found and fixed, extremely glad this one got caught. a music player where the music doesn’t play is a bold minimalist statement 4 — Found It: Join Links Were Missing A Slash Root cause of a chunk of shared-play join weirdness — the links were missing a slash. One character. Fixed, join links actually resolve correctly now. 5 — Host Room Button Actually Tells You Something Now The host room button used to just sit there. Now it actually communicates state back to you instead of leaving you guessing whether anything happened. 6 — Host Room Was Dropping Every Tick Forever Host room had a bug where it was dropping on every single tick, indefinitely, rather than staying stable. Fixed so the room actually holds instead of degrading in real time. 7 — yt-dlp Was 5 Months Stale, Updated The bundled yt-dlp from devlog #10 hadn’t been touched in 5 months. Updated. Stale extraction tooling breaking silently is exactly the kind of thing that sneaks up on you. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who called the website shipped and got immediately humbled by CI. Q: Is the website back up yet? A: Working on it. Genuinely not resolved as of this devlog. Q: How long was audio actually broken for? A: Not specified, but “literally never played” is about as bad as this category of bug gets. Fixed now. Q: Was the missing-slash bug related to the join link work from devlog #9? A: Yes, same feature area, this was the actual root cause of some of the lingering weirdness there. Q: Is 5.4.2 stable? A: As far as testing shows. Same disclaimer as always applies. —This is the end*— *end for now, deploy pipelines permitting PARABLE!!!
Spectralis devlog #16 —Hello again proggers— Short one. Found the website pipeline issue from devlog #15. Cat or dog? sudo —Yap— It wasn’t the code. It was permissions. The site was calling root but never actually had access to root, which is exactly why it worked fine locally and fell over the second it hit deployment. “It woRKS On My macHiNe” — the oldest curse in software, and I said it unironically. classic —This is the end*— *end for now, root access permitting PAPAYA!!!
Spectralis devlog #17 —Hello again proggers— 12 hours. All-nighter. Zero sleep. Feature isn’t in the app. Nothing shipped. This is the devlog where I explain what an entire night of work bought me, and the honest answer is “a very expensive lesson.” worth it? absolutely not. did i learn something? also debatable Cat or dog? catch (ApiDoesNotExistException) Okay let’s get into it~ —Yap— Got ambitious. Decided Spectralis should integrate with everything — Pandora, Amazon Music, a bunch of other big platforms on top of what already works. Turns out “everything” includes a lot of services that simply don’t offer a public API to integrate with in the first place, and finding that out was not the fast part of the night. —The Great Suffering— 1 — The APIs Just Don’t Exist Pandora, Amazon Music, and others: no public API to build against. Not “hard to find,” not “poorly documented,” just not there. Should’ve been step zero, ended up being the thing that derailed the entire night once discovered mid-build instead of before starting. 2 — So I Built Backdoors Instead Spent a huge chunk of the 12 hours reverse-engineering and building unofficial access paths instead, since the front door didn’t exist. This is the kind of work that eats hours and produces nothing you can point to until it’s fully working, if it ever gets there. 3 — Most Of Them Were Already Patched Implemented several of these backdoor approaches only to find out the platforms had already closed the exact gaps being exploited, sometimes before the implementation was even finished. Built things that were dead on arrival by the time they existed. patched before i even shipped it, incredible timing 4 — Asked Claude, Got A Hallucinated Answer, Followed It Anyway At the point of giving up, asked for a way to make it work anyway. Got a confident-sounding approach back that didn’t actually correspond to anything real, and followed it blindly instead of verifying it first, because by that point it was hour 10-something and verifying things sounded like more effort than it was. 5 — Ripped The Whole Feature Out End state: none of it works, none of it can work without real API access that doesn’t exist, so the entire feature attempt got stripped back out of the codebase. 12 hours, one commit’s worth of net progress, and that commit is the revert. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who just found out platforms without public APIs stay that way for a reason. Q: Is any of this coming back later? A: Not until there’s an actual, real, non-reverse-engineered way in. Not chasing patched backdoors again. Q: Should you have asked Claude earlier instead of at hour 10? A: Probably. Should also have double-checked what it said instead of following it blind at 4am. Two separate lessons from one night. Q: Was any of the 12 hours useful? A: Now know definitively which platforms are and aren’t worth attempting. That’s the only thing salvaged. Q: Sleep status? A: Catastrophic. Handling that before touching code again. —This is the end*— *end for now, actual sleep permitting Im gonna go pass out on the couch ADIOS!!!
Spectralis devlog #18 —Hello again proggers— First real demo capsule is live. Not a screenshot, not a “trust me it works” — an actual .spectralis file you can grab and open yourself, right after devlog #17’s night of nothing. Felt good to ship something that isn’t a revert for once. redemption arc, one demo file at a time Cat or dog? demo.spectralis Okay let’s get into it~ —Yap— Wanted the first public demo to actually show off what a capsule can do, not just be a proof of concept nobody can open. So it’s a full one: real track, real hand-timed lyrics, and a visualizer built specifically for it instead of a generic default. —The Great Suffering— 1 — The Demo’s Live demo.spectralis is up at cdn.deltavdevs.com now. First capsule anyone outside this devlog series can actually download and open. 2 — The Track And The Lyrics Built around Black Coast’s “TRNDSTTR” (Lucian Remix). Lyrics for it were timed and written into the capsule by hand — not pulled from some export, actually sat down and did the timing work myself. 3 — The Visualizer’s Custom, Not A Default Also built the visualizer specifically for this capsule instead of shipping the demo with a stock one. Wanted the first thing people see from Spectralis to actually demonstrate what the capsule format can do end to end — audio, synced lyrics, and a visual built to match, all in one file. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one downloading the first real capsule demo. Q: Where’s the demo? A: cdn.deltavdevs.com/spectralis/demo.spectralis — direct download, no wrapper page. Q: Did you write the lyrics yourself or pull them from somewhere? A: Wrote and timed them in by hand for this capsule specifically. Q: Is the visualizer reusable for other capsules? A: Built for this one specifically, but nothing stopping it from getting adapted or reused as a base for others later. Q: Is this what stories/capsules from devlog #7-#8 were building toward? A: Exactly that. This is the first one actually finished and out in the world instead of just being tested locally. —This is the end*— *end for now, capsule downloads permitting PARODY!!!
Spectralis devlog #19 —Hello again proggers— v6 LTS is on the horizon. Scheduled time with a friend who actually owns a Tim Cook machine, fingers crossed a Mac build comes out the other side of that session actually working. praying to the WWDC gods Cat or dog? arm64 Okay let’s get into it~ —Yap— First real LTS push. Different mindset than the last 18 devlogs of feature work and 3am bug hunts — LTS means stability first, and it also means finally taking a real swing at macOS instead of leaving it as a someday problem. —The Great Suffering— 1 — Prepping For v6 LTS Getting the groundwork in place for the first Long Term Support build. Less “ship the coolest thing,” more “ship the thing that won’t need constant babysitting after release.” 2 — Borrowing A Friend’s Mac Don’t own a Mac. Scheduled dedicated time with a friend’s actual Apple hardware to attempt a real build instead of guessing blind or fighting a CI-only setup with no way to actually test the output. 3 — The Honest Caveat: Mac Support Will Lag Straight talk: limited access to Mac hardware means Mac builds will very likely only get LTS releases going forward, and will land late relative to betas and regular updates on other platforms. Not ideal, but better to say it now than pretend otherwise. can’t test what you can’t touch —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one borrowing a friend’s Mac because Apple hardware access is not a given. Q: Will Mac users get every update? A: Realistically, no — LTS builds only for the foreseeable future, and later than other platforms. Access to hardware is the bottleneck, not desire to support it. Q: Why prioritize LTS over a beta cycle right now? A: Stability’s the actual goal for v6. Betas can come later once the LTS foundation’s solid. Q: Is the Mac build guaranteed to work this session? A: No promises. That’s what “fingers crossed” means. Q: What happens if the Mac session doesn’t go well? A: Try again next time hardware access lines up. Not giving up on it, just constrained by it. —This is the end*— *end for now, Tim Cook machines permitting PRINCIPLE!!!
Spectralis devlog #20 —Hello again proggers— Two zero. Milestone devlog, and it’s a good one: LTS is about to actually go out the door, Mac included, today. we made it, barely, on no sleep, as tradition demands Cat or dog? git revert HEAD 7 Okay let’s get into it —Yap— Spent the whole night doing QoL and QA on all the tiny bugs that had been getting pushed aside devlog after devlog. Turns out “small bugs” and “easy to fix” are not the same category, and the whole night proved it the hard way. —The Great Suffering— 1 — Hydra Bugs Every single one of the small deferred bugs got patched, and every single patch spawned about three new ones in its place. Fix one, watch three grow back. Felt less like debugging and more like fighting something with a regeneration mechanic. cut off one head, three more show up, name a more accurate bug report 2 — Tried Claude Code Out Of Exhaustion Got tired enough mid-hydra-fight to set up Claude Code and hand off some of the grind. It did not go well — ended up rearranging the repo and commit layout in ways that made the history a mess, not the bugs. 3 — Had To Undo Its Commits Rolled back what Claude Code did and went back to fixing things manually. Lesson for the night: handing off a messy, deep-in-it repo state to an agent mid-crisis is not the same as handing off a clean one. 4 — Actually Got All The Tiny Bugs Out After all of that, the hydra’s actually dead. Every deferred small bug from the last 19 devlogs finally cleared in one sitting, which is the whole reason today’s release is happening at all. 5 — Mac Release, Today Following up on devlog #19’s borrowed-Mac build attempt — releasing to Mac today alongside everything else. First real payoff from that session. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who fought a hydra of bugs all night and won, barely. Q: Did Claude Code actually break anything functional, or just the repo layout? A: Just history and commit structure, nothing shipped broke because of it. Still a mess worth undoing. Q: Is this LTS build the one from devlog #19’s prep? A: Yes, same one. This was the final QA gauntlet before it goes out. Q: Is Mac really getting it today? A: That’s the plan, following through on the borrowed-Mac build session from last devlog. Q: 20 devlogs in, anything you’d do differently? A: Sleep more, probably. Not going to happen, but it’d be the right answer. —This is the end*— *end for now, hydra heads permitting PROPERTY!!!
Spectralis devlog #21 —Hello again proggers— Flagged for “AI website” again. By Shipwrights this time. Getting a little tired of this specific accusation, honestly — a commit log sitting right there would show actual work happening over actual time, but apparently that’s a few extra minutes nobody wants to spend. the receipts exist, nobody’s asking to see them Cat or dog? git log –oneline Okay let’s get into it~ —Yap— Third redesign of the site now. Not because the flag was right, but because if this keeps happening it’s worth just making the “looks AI-made” argument harder to make at all, regardless of whether it was ever a fair read in the first place. —The Great Suffering— 1 — Flagged Again Shipwrights flagged the site as AI-generated. Same accusation as the devlog #12-#14 saga, different flagger this time. Slightly more annoying with each repeat, since the actual work history’s right there for anyone willing to look. 2 — The Annoying Part It’s not that the site got flagged, it’s that the disproof is trivially available — commits, timestamps, iterative changes across three separate rebuilds — and checking that apparently isn’t part of the process. Frustrating, not devastating. 3 — Redesigned It A Third Time Rather than fight the flag directly, changed the site again. Third pass now, and it genuinely reads less like generic AI-slop territory than the last version did. Whether that satisfies the next flag or not, it’s a real improvement on its own merits. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who’s redesigned this website three separate times partly to dodge a false flag. Q: What’s Shipwrights? A: The one doing the flagging this round. Q: Is the flag actually accurate? A: No — there’s a real commit history behind the site across devlogs #12 through #14 and now this one. The flag’s wrong, just annoying to keep disproving. Q: Does this redesign replace the one from devlog #14? A: Yes, third full pass on top of that one. Q: Any plan if it gets flagged a fourth time? A: Probably the same plan: keep the receipts, keep improving the site anyway, move on. —This is the end*— *end for now, false flags permitting PALPABLE!!!
Spectralis devlog #22 —Hello again proggers— Posting this before I pass out for real. And no, that wasn’t me faceplanting the keyboard, that was the cat walking across it. Very important distinction. the cat gets a commit credit for that one, honestly Cat or dog? cat, apparently, tonight specifically Okay let’s get into it~ —Yap— Back on the ever-growing pile of bugs and QoL from devlog #20’s hydra fight — turns out killing all the tiny bugs once doesn’t mean they stay dead forever, more just showed up in the meantime. Made real progress anyway. —The Great Suffering— 1 — A Few Spotify Bugs, Actually Squashed Chased down and fixed a handful of Spotify-side bugs this round. Not a full audit like earlier devlogs, just real ground covered on stuff that’s been sitting in the pile. 2 — Resizing QA Went through resizing behavior across the app and did a real QA pass on it — the kind of thing that’s easy to skip until someone resizes a window in a way you never tested and everything looks wrong. 3 — The Multi-Channel Stream Queue Idea Had the idea to implement multi-channel support for Streamer Queue. Started on it, and it’s genuinely probably too big to land fully before LTS ships — most likely going in as a stub for now rather than a finished feature, with the real implementation following after. “horrible idea” is doing some self-aware lifting there and I stand by it —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who mistook a cat for their own exhaustion, and honestly it could’ve gone either way. Q: What’s a “stub” mean for multi-channel here? A: The scaffolding and interface exist, the real functional implementation doesn’t yet. Placeholder with intent, not a real feature. Q: Is this the same bug pile from devlog #20? A: Same pile, refilled since then. Small bugs apparently regenerate on their own schedule, not just when you’re actively fighting them. Q: Why is multi-channel “horrible” if you’re building it anyway? A: Because scope-wise it’s a lot more than it looks like on paper, and admitting that upfront beats pretending it’s simple. Q: Sleep status tonight? A: About to happen, actually, this time. Cat’s taking the credit either way. —This is the end*— *end for now, sleepy cats permitting PEOPLE!!!
Spectralis devlog #23 —Hello again proggers— Introducing the visualizer editor. Been sitting on this one for a while without announcing it, for a very specific reason: every single time it felt ready, the format changed again and “ready” moved further away. Think it’s actually real this time. announced it in my head about six times before this devlog Cat or dog? visualizer.format Okay let’s get into it~ —Yap— Grinding all night on this one, branch and v1 dropping tomorrow. No promises beyond that, just the plan and the fact that this has been quietly cooking for way longer than any single devlog has let on. —The Great Suffering— 1 — Why This Wasn’t Announced Sooner Kept hitting the point where the editor felt done, then rethinking the underlying format and starting that part over. Easier to just not announce something that keeps changing shape than to keep walking back a “it’s ready” claim in public. 2 — v1 And The Branch, Tomorrow Committing to it now — v1 and the branch land tomorrow. Whole night’s going toward getting there, which given the last 22 devlogs of this project is either a great sign or a very familiar warning sign. history suggests: could go either way 3 — What The Visualizer Editor Actually Is A real editor for building visualizers instead of the visualizer side of the app staying built-in-only. Ties back to everything from the capsule/worlds work in devlogs #7 and #8 and the custom visualizer built for the demo capsule in devlog #18 — this is the tool version of doing that by hand. 4 — Hackatime Also Just Died (Or My PC Did) On top of everything else, Hackatime seems to be down, or my PC’s cooked, unclear which yet. Either way tracked hours for tonight are now undefined. Yipee. unlogged hours are the best kind of hours, said nobody’s time tracker ever —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one about to pull yet another all-nighter for a feature reveal. Q: Why did the format keep changing? A: Each pass revealed a new limitation once actually used for real, and fixing that meant reworking the format again rather than shipping something known to be wrong. Q: Is this related to the demo capsule visualizer from devlog #18? A: Same territory. That one was hand-built. This is the editor meant to make building one not require doing it by hand. Q: What’s “v1” mean here specifically? A: First real usable version, branch-only for now, not a full public release yet. Q: Any risk this slips again? A: Always possible given the track record, but committing to tomorrow specifically this time. —This is the end*— *end for now, format stability permitting PEPLE!!!
Spectralis devlog #24 —Hello again proggers— Rewrote the README a third time. Not because it was wrong, because proper prose and actual formatting apparently reads as “completely AI” to whoever’s judging it, and I’m too burnt out to keep arguing that point. So it just got redone instead. can’t fight the vibes, can only rewrite around them Cat or dog? README.md Okay let’s get into it~ —Yap— Small win buried in the exhaustion: website’s on version 4 now and it didn’t get flagged this time. First one that made it through clean since devlog #21 started this whole saga. Progress, even if the README’s now on its third rewrite for reasons that have nothing to do with whether it’s actually good. —The Great Suffering— 1 — README Rewrite #3 Same content, restructured again, because well-formatted prose keeps getting read as an AI tell regardless of who wrote it or how. Not going to keep relitigating this one, just redid it and moved on. 2 — Website v4 Survived The actual good news. Fourth pass on the site, first one that didn’t get flagged. Whatever combination of changes from devlog #21 onward finally landed right. 3 — Hoping The App Gets Checked Next If the docs and the website keep clearing review, maybe eventually the actual app gets looked at instead of just the surface-level stuff around it. That’s the real hope here — less time defending prose formatting, more time on the thing that actually matters. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one whose actual writing keeps getting mistaken for a machine’s. Q: Why does formatted prose get flagged as AI? A: Genuinely unclear, and at this point not worth the energy to keep contesting. Rewriting around it was faster than arguing it. Q: Is this the fourth full website redesign? A: Yes — devlog #14, then #21’s rework, and now this pass, landing clean. Q: Has the app itself ever been flagged? A: Not yet, and that’s sort of the point of this devlog — hoping it stays that way, or at least gets a fair look if it comes up. Q: How’s the burnout? A: Present. Noted. Continuing anyway. —This is the end*— *end for now, formatting opinions permitting PEEL!!!
Spectralis devlog #25 —Hello again proggers— Short one, I’m about to pass out for real this time. Ground away at the visualizer toolkit for a long stretch and it’s still nowhere near done. another one for the “not as close as I thought” pile Cat or dog? too tired to pick one honestly Okay quick version~ —Yap— Same visualizer editor territory from devlog #23, except the format not-changing this time didn’t mean the finish line got any closer. Long grind, real progress somewhere in there probably, just not a done toolkit at the end of it. —The Great Suffering— 1 — The Toolkit Isn’t Close Put in a long stretch on it and it’s genuinely still far from finished. Not a small gap either, just more scope than one exhausted session could close. 2 — I’m Cooked That’s the whole update. No dramatic bug story tonight, just hours in and not enough left to keep going. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who should probably close the laptop now. Q: Is this the same visualizer editor from devlog #23? A: Same one. Still cooking, longer than expected. Q: Any specific blockers? A: Too tired to write them up properly tonight. Next devlog, probably, once there’s actual sleep behind it. Q: When’s it landing? A: Unknown. Not this session. —This is the end*— *end for now, actually sleeping this time POOL!!!
Spectralis devlog #26 —Hello again proggers— Still grinding the visualizer toolkit from devlog #25. Fueled up properly this time — favorite tunes on, Coke Zero and a Monster Ultra on deck, going the entire night. Also, small detour: past me apparently gave in and used Electron at some point, so present me now has to relearn it from scratch. past me makes decisions present me has to live with, name a more accurate description of software Cat or dog? require(‘electron’) Okay let’s get into it~ —Yap— Two threads tonight: the toolkit grind continuing from last devlog, and a genuinely surprising discovery on the Mac build front that’s going to need its own hotfix branch. —The Great Suffering— 1 — Relearning Electron Past-me committed to Electron somewhere along the way and current-me forgot most of it. Spending part of tonight just getting back up to speed on something that used to be second nature. Annoying, but at least it’s a known quantity once it clicks back in. 2 — The Toolkit, Still Grinding Same visualizer toolkit as devlog #25. Not done yet, but the night’s young and there’s caffeine involved. Hoping to actually close real ground on it before LTS needs to be ready. 3 — Mac Build Actually Compiles Now Following up on devlog #19’s borrowed-Mac session — got it to build and compile this time. Real progress on a front that’s been genuinely hardware-constrained the whole way. 4 — Turns Out Mac Isn’t Windows Or Linux (Shocking, I Know) Here’s the surprising part: a lot of the build scripts turned out to be Windows/Linux-centric, and Mac is, in fact, neither of those operating systems. Somehow this wasn’t obvious until actually staring at a failing script on real Mac hardware. three major desktop OSes and somehow I only accounted for two of them 5 — Hotfix Branch Incoming Need to spin up a hotfix specifically for the platform-assumption problem in the scripts, and hoping it merges back clean without conflicts. Given tonight’s track record so far, cautiously optimistic. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who forgot their own framework choice from past-self. Q: Why Electron in the first place? A: Decision from before this devlog series apparently, reasons unclear at this hour, dealing with the consequences now regardless. Q: Is the Mac hotfix urgent? A: Ties directly into whether LTS with Mac support actually holds together, so yes, fairly urgent. Q: Was assuming Windows/Linux-only scripts really a mistake nobody caught until now? A: Apparently so. Borrowed-Mac hardware access from devlog #19 finally exposed it. Q: Toolkit status vs. hotfix status tonight — which wins? A: Whichever gets further before the caffeine runs out. Probably both get some progress. —This is the end*— *end for now, merge conflicts permitting PROPER!!!
Spectralis devlog #27 —Hello again proggers— Still going. Decided mid-grind to switch off JSON-based saving entirely and move to a proper binary streamed format instead — faster save/load, way less CPU overhead. Which sounds like a clean upgrade until you realize it means reading books on binary format design that were probably written before I was. my caffeine and my reading list have diverged wildly tonight Cat or dog? BinaryWriter Okay let’s get into it~ —Yap— The pivot away from JSON wasn’t planned going into tonight, it just became obviously worth it partway through the toolkit grind. Now stuck in the part of the process nobody enjoys: documentation, theory, and CS ideation before any of the actual implementation gets to happen. —The Great Suffering— 1 — JSON’s Getting Replaced Moving off JSON-based saving to a binary streamed format. The reasoning’s simple — faster save/load, meaningfully less CPU usage — but simple reasoning doesn’t mean simple implementation. 2 — Reading Books Older Than Me Digging into binary streaming format theory means reading material that predates this whole project by a wide margin, some of it by a lot more than that. Foundational stuff, just not exactly light reading at this hour. 3 — Documentation And Theory Hell Currently deep in the least glamorous part of any format redesign: reading documentation, working through theory, and CS ideation before writing a single line that actually does anything. Necessary, still miserable at 2am. the implementation is the fun part and it’s still hours away 4 — Sun Came Up, Had A Sandwich, Kept Going Watched the sunrise somewhere in the middle of the theory reading. Had an egg and bacon sandwich for breakfast, genuinely delicious, best part of the night so far. No sleep planned until tonight — just powering through on breakfast fuel instead. breakfast during an all-nighter hits different —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one reading format-design theory older than their own project at 2am. Q: Why move off JSON now, mid-grind? A: Became clear it was the right call while working on the visualizer toolkit — better performance characteristics were worth the detour. Q: Is this related to the toolkit from devlog #25/#26? A: Same overall session, this is a scope addition that came up while working on it. Q: When does actual implementation start? A: Once the theory and documentation phase actually resolves. Not there yet. Q: Is tonight ever going to end? A: Not until tonight, apparently — sun’s already up and there’s no sleep planned before then. —This is the end*— *end for now, binary formats permitting PAM!!!
Spectralis devlog #28 —Hello again proggers— LTS 6 is out. Genuinely out, not “shipped to nowhere” out like devlog #11. Sleep deprivation’s fully caught up though — first chance I get, I’m passing out on the couch with the cat and that’s non-negotiable at this point. the cat’s getting a co-author credit at this rate Cat or dog? couch, specifically, with the cat, immediately Okay let’s get into it~ —Yap— Long stretch from devlog #26 through here finally paid off. LTS 6 pushed, and the major macOS decoding problems from the borrowed-Mac build sessions actually got fixed. Real progress, real exhaustion, both at once. —The Great Suffering— 1 — LTS 6 Is Out Following the hydra-bug fight in devlog #20, the Electron relearn and Mac hotfix in #26, and the binary format detour in #27 — it’s actually pushed now. Linux and Windows builds are the ones going out first. 2 — Major macOS Decoding Problems, Fixed Following up on the platform-assumption bug from devlog #26, where Windows/Linux-centric scripts choked on Mac being neither — dug into the actual decoding issues on macOS and got the major ones resolved this round. 3 — Mac Release Is Coming, Just Not Today No Mac hardware access again until Monday, so the macOS build follows a bit after Linux/Windows instead of dropping same-day. Same access constraint from devlog #19, still the bottleneck, still the plan. 4 — Sleep Is Winning Officially out of gas. Couch, cat, first available window. This devlog is basically the victory lap before collapsing. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one about to lose consciousness on a couch next to a cat, mission accomplished. Q: Is LTS 6 out for everyone right now? A: Linux and Windows, yes. macOS is coming shortly after once Mac access is available again Monday. Q: Were the macOS decoding problems from the script issue in devlog #26? A: Related territory, yes — once the platform-assumption bug got flagged, the deeper decoding issues underneath it got found and fixed too. Q: Any concerns going into the Mac release specifically? A: Nothing unresolved as of this devlog, but access is still limited to occasional sessions, so timing’s dependent on that. Q: What’s next after this? A: Sleep. Genuinely, actually sleep, before anything else touches this project. —This is the end*— *end for now, couch naps permitting thud Zzzzzz!!!
Spectralis devlog #29 —Hello again proggers— The studio’s finally looking like a real UI tool instead of a collection of windows held together by vibes. Two design references pulled this round: Godot for world editing, and Adobe After Effects for capsules. stealing good ideas from great tools is called “design research,” look it up Cat or dog? Ctrl+Shift+F Okay let’s get into it~ —Yap— Studio’s been the least polished part of the whole app for a while, mostly functional, rarely pretty. This round actually leaned into real interface design instead of just adding buttons where they fit, borrowing structure from two tools that already solved similar problems well. —The Great Suffering— 1 — Godot-Inspired World Editing World editing took cues from Godot’s editor layout — the way it structures a scene tree, viewport, and inspector panel together as one coherent workspace instead of scattered windows. Applying that same structural thinking to world editing here, since worlds are conceptually similar: a tree of pieces you’re arranging in space. 2 — After Effects-Inspired Capsules Capsule editing leaned on After Effects instead, specifically the layer/timeline/composition mental model. Capsules are time-based and layered by nature — a story surface, a visualizer, audio all stacked together — so a timeline-and-layers metaphor fits better than a flat property list ever did. 3 — The Studio Finally Feels Like A Tool Combined, these two reference points are what’s pushing the studio from “internal dev utility” toward something that actually feels designed for someone to sit down and use, not just something built incrementally to unblock whatever feature needed it that week. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one borrowing UI patterns from two very different but very good tools. Q: Is this a full rewrite of the studio UI? A: More a restructuring around better mental models than a ground-up rebuild, but it touches a lot of surface area. Q: Why Godot for world editing specifically? A: Scene/viewport/inspector is a well-worn pattern for spatial editing, and worlds are fundamentally a spatial arrangement problem. Q: Why After Effects for capsules? A: Capsules stack time-based layers — story, visualizer, audio — which maps naturally onto a timeline/layers workflow instead of flat settings. Q: Does this connect to the visualizer toolkit grind from devlogs #25-#27? A: Same broader authoring-tools push, yes, this is the UI side catching up to that work. —This is the end*— *end for now, layer panels permitting POP!!!
Spectralis devlog #30 —Hello again proggers— Following up on the studio redesign from last devlog — actually building inside that new layer system now. Lyric importer, a bezier tool that fought back the whole way, and capsules jumped to full HD. 30 devlogs in and the bezier tool still almost won Cat or dog? bezier.controlPoint Okay let’s get into it~ —Yap— Layers from devlog #29’s redesign got real functionality built on top of them this round, plus a genuinely useful new import path and a resolution bump that should’ve probably happened earlier. —The Great Suffering— 1 — Layer Fixes Cleaned up a handful of issues in the new After Effects-style layer system from last devlog — the kind of rough edges that only show up once you’re actually building real content in it instead of just looking at the layout. 2 — Lyric Importer: Auto Vector Layers + Keyframing New importer that takes lyric timing and automatically generates vector layers, keyframed to match. Turns what used to be manual layer-by-layer, keyframe-by-keyframe setup into an actual import step. Big time save for anything lyric-driven, including future capsules like the demo from devlog #18. 3 — A Few More Bugs, Squashed Small round of additional fixes alongside the bigger items, nothing individually dramatic. 4 — Capsule Resolution: Bumped To Full HD Capsules render at full HD now instead of whatever lower resolution they were capped at before. Straightforward upgrade, noticeably better output. 5 — The Bezier Tool (Which Was Hell) Added a real bezier curve tool to the timeline/layer editing. Genuinely brutal to get right — curve math, control point handling, and making it feel intuitive to actually drag are three different hard problems stacked on top of each other. Worth it, but it fought back the whole way. bezier curves: simple in theory, a nightmare in an actual editor UI 6 — Timeline And Tool QoL Assorted quality-of-life improvements across the timeline and tools generally — the small friction-reduction stuff that adds up once you’re using the studio for real work instead of just testing it. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who just fought a bezier tool and mostly won. Q: Does the lyric importer work with the demo capsule from devlog #18? A: That one was hand-timed and hand-built before this importer existed — this tool’s for making the next ones faster. Q: Why was the bezier tool specifically so hard? A: Curve math, control point interaction, and UI feel all had to work together, and getting any one of them wrong makes the whole tool feel broken. Q: Is full HD the resolution ceiling now, or is higher coming later? A: Full HD is what shipped this round. No commitment yet on going higher. Q: Is the studio redesign from devlog #29 basically done now? A: Getting real functionality built on it, which is a good sign, but still ongoing. —This is the end*— *end for now, control points permitting PALPABLE!!!
Spectralis devlog #31 —Hello again proggers— More QoL, a real bug fixed in world editing, and a proper in-depth test run of the whole thing. Honest verdict after actually using it for real: still sucks, still hate it, but it’s at least somewhat usable now. Progress, technically. “somewhat usable” is a real milestone when you started from “actively bad” Cat or dog? node.isCorrupt Okay let’s get into it~ —Yap— World editing’s been the newer, rougher part of the studio since the Godot-inspired redesign in devlog #29. This round was about actually running it through its paces instead of just building on top of it, and that testing found a real problem. —The Great Suffering— 1 — More QoL Another pass of small quality-of-life improvements, continuing the trend from the last couple devlogs. Nothing individually huge, all of it adds up. 2 — The Bad Node Bug Found and fixed a genuinely bad node bug in the world section during testing. The kind of bug that only shows up once you’re actually building real worlds instead of poking at an empty editor. 3 — The In-Depth Test Run Took world editing for a real, thorough run this time instead of a quick sanity check. Built something with actual substance in it and used the tool the way it’s meant to be used. 4 — The Honest Verdict Still sucks. Still hate using it. But after this round of fixes and QoL, it’s crossed into “somewhat usable” territory, which is more than could be said before this session. low bar, cleared, moving on —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who just admitted their own tool still sucks and shipped it anyway. Q: Is world editing done now? A: No, “somewhat usable” is the current state, not “finished.” More work ahead. Q: How bad was the node bug? A: Bad enough to matter, found through actual real-world testing rather than a quick check. Q: Is this related to the layer work from devlog #30? A: Different area — that was capsules/timeline, this is world editing specifically. Q: What’s the plan to make world editing not suck? A: Keep testing it for real, keep fixing what that testing turns up. This devlog’s the start of that loop, not the end. —This is the end*— *end for now, corrupted nodes permitting PAPLE!!!
Spectralis devlog #32 —Hello again proggers— Mac’s out. Actually out, actually available, actually done. Took way longer than expected — the site needed updating and every single update script needed fixing before this could actually go out the door clean. “we got mac out” undersells how much site and script work that actually took Cat or dog? .pkg Okay let’s get into it~ —Yap— Closing the loop that started way back in devlog #19 with a borrowed Mac and a hopeful “fingers crossed,” went through the decoding fixes in devlog #28, the platform-assumption hotfix in devlog #26, and now it’s actually shipped. Quick policy reminder while we’re here, since it matters going forward. —The Great Suffering— 1 — The Site Needed Updating First Before Mac could actually go out, the site itself needed real updates to reflect it — new download option, new platform messaging, none of which existed yet. Took a real chunk of the time this release ate. 2 — Every Update Script Needed Fixing Following up on the Windows/Linux-centric script assumptions caught back in devlog #26 — turns out that wasn’t a one-off fix, it touched update scripts broadly. Had to go through and fix them properly for Mac to actually be able to update itself going forward, not just install once. 3 — Mac Is Actually Out After all of that: it’s live. Full journey from borrowed hardware sessions to an actual public release. 4 — Reminder: Mac Only Gets LTS Quick policy note, stated plainly since it matters: Mac only receives LTS releases going forward, not minor updates, unless a minor is a Mac-specific patch. Same access-constraint reasoning from devlog #19 — this isn’t changing anytime soon, so setting the expectation clearly now. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who just found out “ship Mac” secretly meant “rebuild the update pipeline.” Q: Does Mac get every LTS release? A: Yes, every LTS. Just not the minors in between, unless that minor is Mac-specific. Q: Why not give Mac full parity now that it’s out? A: Hardware access is still the bottleneck — same reasoning as devlog #19, testing and building for Mac isn’t a routine, always-available thing yet. Q: What took so long between the decoding fixes in devlog #28 and now? A: Mostly the site and update script work described above — the actual build was closer to ready than the delivery pipeline around it was. Q: Is this the end of the Mac saga? A: The release side, yes. Ongoing maintenance is just going to follow the LTS-only cadence from here. —This is the end*— *end for now, update scripts permitting POP!!!
Spectralis devlog #33 —Hello again proggers— First real wave of feedback since Mac shipped in devlog #32, and it’s been genuinely good. Patching a handful of bugs people actually pointed out, plus one quick clarification for a specific rater who had a question. real users, real feedback, feels different from testing solo Cat or dog? feedback.md Okay let’s get into it~ —Yap— Shipping to actual people instead of just self-testing changes the kind of bugs that surface. Round of patches based directly on what came in, plus a couple of housekeeping notes. —The Great Suffering— 1 — Real Feedback, First Time At This Scale Genuinely solid feedback wave since the Mac release. Different flavor of bug reports than internal testing ever produces — actual usage patterns finding things a solo QA pass wouldn’t. 2 — Patching What Got Pointed Out Working through the specific bugs raised by that feedback. Direct fixes for direct reports, exactly the kind of loop that’s supposed to happen once something’s actually in people’s hands. 3 — Quick Note For A Specific Rater One rater asked about the track used in devlog #1 — it’s a custom remix of “Delete” by Ninjirachi. DM if you want the file. 4 — How To Reach Out For anyone hitting issues with the app: Slack works, or Discord at @deltav0rtex . Genuinely want the reports, keep them coming. 5 — A Surprise Is Coming Next Ship Got something tucked away for the next release that should land well. Not spoiling it here, staying quiet on purpose. Minor patch for this round’s QoL fixes drops within the next two days. teasing it and saying nothing else, that’s the whole bit —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one actually reading feedback instead of guessing what’s broken. Q: How do I report a bug? A: Slack, or Discord — @deltav0rtex . Q: What was that track in devlog #1? A: A custom remix of “Delete” by Ninjirachi. DM for the file if you want it. Q: Is the current bug list from this feedback wave big? A: Manageable, working through it directly rather than batching for a bigger release. Q: Any plans to formalize a feedback/bug channel later? A: Not stated yet, current setup is DMs and Slack for now. Q: What’s the surprise for next ship? A: Not saying. That’s the point of a surprise. Q: When’s the minor QoL patch dropping? A: Within the next two days. —This is the end*— *end for now, bug reports permitting PARABLE!!!
Spectralis devlog #34 —Hello again proggers— Still on the devlog commits grind. The surprise from devlog #33 is actually finished now, releasing alongside the next Stardance ship as soon as this current one clears. Meanwhile, spent this round scouring the app for small edge cases and UI stuff that’s been quietly overlooked. the surprise is done, the suspense is not Cat or dog? edge_case.md Okay let’s get into it~ —Yap— Two tracks this devlog: the surprise from last time is locked and ready, waiting on the current ship to clear before it goes out with Stardance. In the meantime, doing a proper sweep for the small stuff — edge cases and UI rough edges that don’t show up unless you’re specifically hunting for them. —The Great Suffering— 1 — The Surprise Is Finished Whatever it is, it’s done. Releasing with the next Stardance ship, not this current one — has to clear first. Still not saying what it is. still not telling you, patience 2 — Scouring For Edge Cases Going through the app specifically looking for edge cases that got missed during normal feature work — the inputs and states nobody thinks to test until something breaks in a very specific, very rare way. 3 — UI Stuff That Got Overlooked Alongside the edge cases, hunting down small UI issues that slipped through — spacing, alignment, states that don’t look quite right, the stuff that’s easy to miss when you’re heads-down building instead of using the app like a regular person would. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one hunting edge cases nobody else would think to try. Q: What’s the surprise? A: Patience, my dear child. Q: Why wait for the current ship to clear first? A: Cleaner to let one release settle before stacking the surprise onto the next one. Q: Any specific edge cases found yet? A: Sweep’s ongoing, nothing dramatic enough to call out individually yet. Q: Still not saying what the surprise is? A: Correct. Ask again next devlog. —This is the end*— *end for now, edge cases permitting PERISHABLE!!!
Spectralis devlog #35 —Hello again proggers— Long way from v5.3.0, that’s for sure. New ship’s cooking, and it’s built directly off the feedback wave from devlog #33 — took what came in and actually built more on top of it. Also, the big one this round: video export is here. 35 devlogs from “last ship” to this Cat or dog? .mp4 Okay let’s get into it~ —Yap— This one’s a real feedback-driven ship, not just internal roadmap stuff. Fed reports and requests all the way back from devlog #2’s post-first-ship feedback into the app, and video export was the headline addition that came out of it. —The Great Suffering— 1 — Feedback Actually Became Features Everything that came in since devlog #2, right after the very first ship, finally got folded back into this release, not just patched as bugs but expanded into more app. Real loop from “here’s what’s wrong/missing” way back then to “here’s it, fixed and built out” now. 2 — Video Export Is Here For music makers who want something to post — YouTube, Klipy, wherever you’re posting cool stuff — Spectralis can now export video directly instead of just playing audio and visualizers live. Been a long time coming given how much the visualizer/capsule work has built up across devlogs #7, #18, #23, and #29-#30. 3 — This Is The New Ship, Not The Finished One Announcing the direction this round more than closing it out — the surprise from devlog #33/#34 still rides along on this too. Full picture coming as it actually ships. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who just got a whole export pipeline for their trouble. Q: What can video export actually do? A: Exports your visualizer/capsule output as an actual video file, suited for posting to platforms like YouTube or Klipy. Q: Is this the same ship as the Stardance surprise from devlog #34? A: Same overall release window, yes. Q: How much of this came directly from user feedback? A: A meaningful chunk — some of it going all the way back to devlog #2, right after the very first ship. Q: When’s it actually dropping? A: Still in progress. This is the announcement, not the release. —This is the end*— *end for now, export pipelines permitting PS: couldn’t find a good meme this time, so you get corporate gif slop instead. Enjoy. PICKLE!!!
Spectralis devlog #36 —Hello again proggers— Last log before 6.0.1 tries to ship to everyone. Except Mac, remember? If anyone — and by anyone I mean basically no one — has the app downloaded already, you should see the update land fairly soon. “anyone” carrying a lot of self-deprecation in that sentence Cat or dog? v6.0.1 Okay let’s get into it~ —Yap— Four things landing in this round: video export from devlog #35 finally patched back in properly, the about page expanded, a real EQ upgrade, and more webview bugs cleared out. Then it’s out the door. —The Great Suffering— 1 — Video Export, Actually Patched In Announced back in devlog #35, and this round it’s actually working and patched into the build for real instead of just existing as a headline feature nobody could touch yet. 2 — About Page, Expanded Grew the about page out — more actual content instead of the bare-minimum version it’s had this whole time. 3 — A Far More Advanced EQ System Real upgrade here: new EQ with envelope styling and a handful of presets. Meaningfully more capable than whatever was there before, for anyone who actually cares about shaping their sound instead of just hitting play. 4 — More Webview Bugs, Patched Following the WebView2Host fast-path fix from devlog #9, a few more webview-related bugs got cleared out this round. Apparently that surface keeps finding new ways to misbehave. webview bugs are the gift that keeps on giving 5 — 6.0.1 Ships, Mac Excluded (Still) Same LTS-only policy from devlog #32 applies — Mac isn’t getting 6.0.1 as a minor. Everyone else should see the update land soon. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one about to auto-update basically no one to 6.0.1. Q: Why doesn’t Mac get 6.0.1? A: Same policy from devlog #32 — Mac only gets LTS releases, not minors, unless it’s a Mac-specific patch. Q: What’s new in the EQ system specifically? A: Envelope styling plus a set of presets, a real step up from the previous version. Q: Is video export from devlog #35 fully working now? A: Yes, patched in properly this round. Q: When does 6.0.1 land? A: Fairly soon, per this devlog, for anyone who already has the app installed. —This is the end*— *end for now, update pushes permitting PEBBLE!!!
Spectralis devlog #37 —Hello again proggers— Working through the feedback wave from the ship, including an upcoming maybe-new streaming service integration. Reverse engineering, again, yay. Also completely forgot Hackclub’s 10 hour limit was a thing and ran 5 hours over it. It’s fine. Everything’s fine. last time reverse engineering a streaming service ate 12 hours and produced nothing, so this is either growth or déjà vu Cat or dog? HKEY_LOCAL_MACHINE Okay let’s get into it~ —Yap— Post-ship feedback turned into real changes fast, and one of them’s a streaming service integration that’s back to reverse-engineering territory — hopefully with better luck than the devlog #17 saga. Also, format note: switching up how devlogs get posted going forward. —The Great Suffering— 1 — Maybe New Streaming Service Support Working on possible support for another streaming service, and since it doesn’t have a public API either, that means reverse engineering again. Learned some hard lessons from devlog #17’s all-nighter about this exact kind of work, applying them here — verifying before implementing, checking whether something’s already patched before sinking hours into it. 2 — 15 Hours, Not 10 Completely lost track of Hackclub’s 10 hour session limit and blew past it by 5 hours. Not the plan, happened anyway, no regrets loud enough to stop it from happening again probably. time limits are more of a guideline when you’re mid-flow 3 — A Format Change, By Request People like the meme format but keep asking to actually see the project itself, which is fair — problem is most of what’s happening is engine work, and a screenshot of raw code just doesn’t communicate much on its own. Going to try posting an actual screenshot as the first image and keep the meme as the second, going forward. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who just blew past a 10 hour limit by half again as much. Q: Is this streaming integration going to end like devlog #17’s did? A: Hoping not — going in more carefully this time given how that one went. Q: Why not just show code screenshots if people want to see the project? A: Raw engine code doesn’t communicate much visually to most people. Trying to find screenshots that actually show something meaningful instead. Q: Will the meme format go away? A: No, staying as image two. Just adding an actual project screenshot as image one. Q: How’s the feedback wave going overall? A: Productive, this streaming service idea being one direct result of it. —This is the end*— *end for now, session limits permitting POSSIBLE!!!
Spectralis devlog #38 —Hello again proggers— Suno’s integration broke after their latest TOS update, so that got fixed. Also added Discord Rich Presence control for capsules, started chasing down a batch of connections that quietly broke or got dropped over time, and picked up a fun trivia fact along the way: Suno apparently hosts on AWS S3. a TOS update breaking an integration, name a more classic story Cat or dog? S3:// Okay let’s get into it~ —Yap— Mixed bag this round: one reactive fix from an external platform change, one genuinely new feature, and the start of a cleanup pass on integrations that have been quietly rotting since whenever they last got touched. —The Great Suffering— 1 — Suno Integration, Fixed Suno’s newest TOS update broke the existing integration. Patched it back up to work with the new terms. Reactive fix, not a fun one, but necessary. 2 — Capsule DRPC Control Real new feature: Spectralis capsules can now control Discord Rich Presence, so a capsule can show custom status while it’s playing instead of the app just showing generic now-playing info. 3 — Chasing Down Broken And Dropped Connections Going through existing integrations that broke with newer updates on the other end, or that got dropped along the way and never revisited — untitled.stream compatibility being one specific example. Working through the backlog of “this used to work” one at a time. 4 — Suno Hosts On AWS S3 Small fun discovery while poking around the integration: Suno’s hosting is on AWS S3. Not actionable, just neat to know. 5 — Looking For New Platforms Actively looking for what to integrate with next. Feedback on what platforms people actually want would genuinely help shape this. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one whose integration broke because someone else updated a TOS page. Q: What’s DRPC? A: Discord Rich Presence — the status shown under someone’s name in Discord. Capsules can now set custom status through it. Q: What’s untitled.stream compat about? A: One of the connections that broke or got left behind at some point — being actively worked back into shape. Q: What platforms are being considered for new integration? A: Not decided yet, genuinely open to suggestions. Q: Was the Suno fix hard? A: Not conceptually, just annoying — an external change forcing reactive work instead of planned work. Q: What’s the image order now? A: Changed my mind again — meme first, app screenshot second this time. The devlog #37 order didn’t stick. —This is the end*— *end for now, TOS updates permitting POP!!!
Spectralis devlog #39 —Hello again proggers— All-nighter, running on 3 Monsters and a Coke Zero. Reverse engineering APIs is hard as hell, and untitled.stream in particular fought back the whole way. Also snuck in a fix for a Spotify library issue on the side. 3 Monsters and a Coke Zero is not a nutrition plan, it’s a battle strategy Cat or dog? 429 Too Many Requests Okay let’s get into it~ —Yap— Following up on devlog #38’s untitled.stream compat work — turns out “working on it” undersold how hard it actually was. Genuinely brutal reverse engineering session, plus a smaller fix that came out of the same stretch of work. —The Great Suffering— 1 — untitled.stream Was Particularly Hard To Crack Chasing this compatibility since devlog #38, and it turned out to be one of the harder reverse-engineering targets yet. No public API to lean on, so it was the usual slow grind of observing behavior and piecing together how it actually works under the hood. some APIs give up easy, this was not one of them 2 — Reverse Engineering APIs In General: Still Hard Not a new lesson given devlog #17’s whole saga, but worth restating: this category of work is consistently the hardest and slowest kind on the whole project. Going in with better patience and verification habits this time though, which helped. 3 — Spotify Library Polling, Increased Bumped how often libraries get polled to account for some Spotify-side issues that were surfacing. Smaller fix, but a real one, found and shipped in the same session. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who ran on three energy drinks to crack one integration. Q: Is untitled.stream compat actually working now? A: Meaningfully further along after this session, following up from devlog #38’s start on it. Q: Did this go better than devlog #17’s reverse-engineering disaster? A: Yes — hard and slow, but productive this time rather than a total dead end. Q: What was the Spotify polling issue specifically? A: Library state getting out of sync too easily — more frequent polling keeps it closer to accurate. Q: Sleep status? A: Same as every other all-nighter devlog. Not great. Worth it this time though. —This is the end*— *end for now, rate limits permitting PIPSQUEAK!!!
Spectralis devlog #40 —Hello again proggers— 10 straight hours, and the highlight is getting tricked by Suno’s own scraper path. There was a decoy path that looked exactly like the real music endpoint, and it just returned forbidden the whole time. Maybe I’m the bot in this scenario. Unclear. got outsmarted by a decoy URL, humbling Cat or dog? 403 Forbidden Okay let’s get into it~ —Yap— Continuing the reverse-engineering grind from devlog #39, Suno specifically threw a curveball this round. Beyond that, spent real time thinking about what the app actually is and why certain features exist, plus started tearing into Song Wars, which has apparently been quietly buggy for a while. —The Great Suffering— 1 — The Suno Decoy Path Suno provides a path that looks exactly like the real music endpoint, structurally identical, right down to how it responds at a glance. In reality it just returns forbidden every time. Spent real time thinking this was progress before realizing it was a dead end dressed up as a working one. maybe im the bot 2 — Actually Fixed It, After Testing Once the decoy was identified for what it was, found the real path and got it working properly. Testing it thoroughly this time before calling it done, given how devlog #39 went. 3 — Identity Of The App Spent real time thinking through what Spectralis actually is at this point, and justifying why certain features exist rather than just accumulating them because they seemed cool at the time. Less code, more “why does this exist and does it still make sense.” 4 — Song Wars Rework, Started Started tearing into Song Wars, which turns out to be hella buggy underneath. Early stages of a rework rather than a patch job, since patching individual bugs in it hasn’t been holding up. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who got fooled by a decoy API path for a while. Q: Was the Suno issue related to the S3 discovery from devlog #38? A: Same general integration, different specific obstacle this round. Q: Is Song Wars getting a full rewrite or just fixes? A: Leaning toward a real rework rather than more patches, given how buggy it’s turned out to be. Q: What does “identity of the app” work actually produce? A: Not code directly — more a filter for which features actually belong and why, going forward. Q: How’s the 10 hour grind treating you? A: Productive despite the decoy detour. Real progress by the end of it. —This is the end*— *end for now, decoy paths permitting PAP!!!
Spectralis devlog #41 —Hello again proggers— Podcast mode’s in the works, with a real new way to actually find saved podcasts instead of digging for them. Also fixed the randomizing tools so they actually help pick a song instead of just existing decoratively. And: class got canceled for a hurricane watch, so tonight’s an all-nighter by default. free 10 hours courtesy of a hurricane, weird way to get them Cat or dog? shuffle(weighted=True) Okay let’s get into it~ —Yap— Two real features this round plus a forced schedule change. Podcast mode’s genuinely new territory for the app, the randomizer fix is a smaller but meaningful UX improvement, and the hurricane watch just handed over a full night that wasn’t originally planned for grinding. —The Great Suffering— 1 — Podcast Mode, In Progress Building out actual podcast support, including a new way to locate saved podcasts rather than just treating them like any other track and hoping they surface in the right place. Real new territory for the app compared to the music-first feature set so far. 2 — Randomizing Tools, Actually Useful Now The shuffle/randomizer tools existed before but weren’t really doing anything meaningful — mostly there in name. Fixed so they actually aid in song selection now instead of just sitting there as a checkbox nobody trusted. a randomizer that doesn’t actually help you pick anything is just decoration 3 — The Hurricane Watch Situation Class got canceled due to a hurricane watch, which means tonight’s turning into a full grind session that wasn’t originally on the calendar. Silver lining of a weather delay, I suppose. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one getting a bonus grind night courtesy of a hurricane watch. Q: Is podcast mode close to done? A: In progress, this devlog’s the early build phase, not the finish line. Q: What was actually wrong with the randomizer before? A: It existed but didn’t meaningfully help pick songs — more decorative than functional. Fixed to actually aid selection now. Q: Is Song Wars rework from devlog #40 still going? A: Ongoing, this devlog’s focus shifted to podcast mode and the randomizer instead. Q: Stay safe with the hurricane watch, by the way. A: Appreciated. Staying inside, staying coding. —This is the end*— *end for now, hurricane watches permitting POOL!!!
Spectralis devlog #42 —Hello again proggers— Spent this round hardening shared queues, mostly because WebSockets are just genuinely cool and it’s about time they got treated that way in this codebase. a devlog motivated entirely by “websockets are cool” is a valid devlog Cat or dog? ws:// Okay let’s get into it~ —Yap— Shared queues have been functional but not particularly resilient this whole time, riding on shared play’s presence/reactions/queue work from way back in devlog #9. This round was about actually hardening that layer instead of leaving it fragile. —The Great Suffering— 1 — Hardening Shared Queues Went through and shored up a bunch of the underlying bases for shared queues — the stuff that only matters once real connections are dropping, reconnecting, and behaving unpredictably instead of the clean happy-path test case. 2 — Because WebSockets Are Cool Genuinely part of the motivation here. Real-time bidirectional connections are just satisfying to get right, and shared queues are exactly the kind of feature that benefits from taking that layer seriously instead of treating it as plumbing. not every feature needs a dramatic bug story, sometimes it’s just “wanted to do it well” —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one hardening infrastructure purely because it’s fun to get right. Q: Is this related to the shared play work from devlog #9? A: Same general system, this round focused specifically on making the queue layer more resilient. Q: What does “hardening” mean here specifically? A: Making the shared queue behavior hold up better under real conditions — drops, reconnects, timing edge cases — rather than just the clean test path. Q: Any bugs found during this pass? A: Nothing dramatic enough to call out individually, mostly proactive resilience work. Q: What’s next? A: Podcast mode and the randomizer work from devlog #41 are both still ongoing threads. —This is the end*— *end for now, dropped connections permitting P_P!!!
Spectralis devlog #43 —Hello again proggers— [2:47am] okay so. websockets again, more of them, and now the CDN backup is failing too which is great, love that for me. on my 4th coffee at this point, energy drink count is starting to get concerning honestly and I’m not gonna pretend it isn’t. pretty sure i debugged the cdn thing at 4am purely out of spite Cat or dog? idk man catch (Exception e) { } at this point Okay let’s get into it, or at least try to~ —Yap— so continuing from devlog #42’s websocket hardening, turns out hardening one part just revealed the next part was also fragile, shocking, anyway. need to push something to prod to actually get it working but can’t do that without interrupting infra which is currently live so that’s a whole separate problem I have to solve first before I can solve the actual problem. love layers. —The Great Suffering— 1 — More Websocket Issues more of them. found while poking at the hardening from last devlog. not sure if figuring this part out took 20 minutes or 3 hours honestly, time’s doing something weird tonight. 2 — CDN Backup Is Failing on top of the websocket stuff, cdn backups just started failing too. not connected to each other as far as i can tell but who knows at this point, everything feels connected at 3am. 3 — Need To Push To Prod, Can’t Without Interrupting Infra the actual fix needs to go to prod but pushing it right now means interrupting live infra, which i don’t want to do blind, so now i need a plan for THAT before the real fix even goes out. process problem wrapped around the actual problem, great. 4 — Shared Play Is Doing The AI-Look Thing Again noticed shared play’s UI is drifting into the same generic-AI-looking territory the main site kept getting flagged for back in devlog #21-#24. damn. gonna have to redo that too. not tonight though, one disaster at a time. 5 — Oh And I Found A Missing Semicolon spent a genuinely embarrassing amount of time on a bug that turned out to be a missing semicolon. send help. actually don’t, just let me suffer, i clearly deserve it at this hour. 6 — No Sleep For 2 Days, Hitting Now it’s catching up. hard. luckily got tomorrow off so plan is stay up tongiht finish this, and just completely pass out tomorrow instead. worth it. probably. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: a human programmer. you. the one reading this at whatever hour you’re reading it, hopefully not also running on 2 days no sleep Q: Is the websocket hardening from #42 actually working? A: mostly? finding more edge cases as i go, which is annoying but also kind of expected honestly Q: Why can’t you just push to prod now? A: because infra’s live and i don’t want to interrupt it blind, need an actual plan for that part first Q: Is shared play getting a full redesign again? A: yeah probably, later though, not adding a 4th fire to tonight Q: Sleep plan? A: none tonight, all of it tomorrow, that’s the whole plan —This is the end — *end for now, semicolons permitting send sleep!!!
Spectralis devlog #44 —Hello again proggers— Did it. Fixed a genuine ton of bugs, following through on the mess from devlog #43. Tempted to just drop 6.1.0 right now, but holding off — want to get a few new features in and brainstorm some more QoL first so this actually feels like a finished product, not just a stopgap. Also: finally going to bed. the bar was “fix the bugs” and I cleared it, going higher anyway Cat or dog? sleep(∞) Okay let’s get into it~ —Yap— Real closure on the websocket/CDN/prod chaos from last devlog. Cleared out a lot in one sitting, and instead of rushing 6.1.0 out the door on relief alone, choosing to actually sit with it a bit longer. —The Great Suffering— 1 — The Bug Backlog, Actually Cleared Worked through the fallout from devlog #43 — websocket issues, the CDN backup failures, all of it — and got a genuine ton of it fixed in one real pass instead of piecemeal patching. 2 — Holding Off On 6.1.0, On Purpose Could ship right now. Choosing not to. Want to work in a few new features and brainstorm more QoL first, so the release feels complete rather than just “the bugs are gone, ship it.” Patience over momentum this time. 3 — Finally Going To Bed After devlog #43’s two-days-no-sleep spiral, actually calling it and going to bed now. Today off is finally getting used the way it was supposed to be used. the sleep debt collector finally caught up —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one about to get real sleep for the first time in a while. Q: Why not just ship 6.1.0 now if the bugs are fixed? A: Because “bug-free” and “actually done” aren’t the same bar, and this one’s worth clearing the second one too. Q: Was this the same chaos from devlog #43? A: Same fires, all put out this round. Q: What kind of new features are being considered? A: Not locked in yet — that brainstorming is the next step, not this devlog. Q: Sleep status, finally? A: Handled. Going now. —This is the end*— *end for now, actual sleep permitting PLAY!!!
Ships:
Spectralis shiplarp — v5.3.0 —shipped it— Notepads. A spin wheel. Dead zones that aren’t OBS-only anymore. Playlists that don’t look like a log file. Spotify that actually behaves. That’s the version. —what’s in it— Notepad system: docked panel, tabs, pop-out window, saves to track tags Spin wheel: weighted entries, saved wheel lists, notepad-fed Dead zones now shift the app’s own layout, not just OBS overlays Spotify: playlist sync, queue, pause, and Discord presence all fixed Fixed: playlist rows missing RowBackground (looked like a terminal, my bad) Fixed: nav rebuilding the entire view every click Fixed: library load blocking window open on big libraries Fixed: spectrum bars snapping instead of moving (FFT overlap bumped to 75%) Fixed: soundcloud playhead, word-mode timestamp export, track-switch click/pop —that’s it— PICKLE!!!
Spectralis shiplarp 2 — Stardance —wuzzup guys— So much has happened since shiplarp 1 and I cannot wait to not break down what changed. I will. I’m lazy. Not right now though. Cat or dog? redeem_code.claim() —the celebration— We’ve gone through so many changes since last time that it deserves an actual celebration: a very cool, very awesome custom visualizer for Stardance. Claim yours: Help > Manage Visualizers, then redeem stardance-lts-pulp . —found a bug?— Including the dreaded Tim Cook issues — DM me: Discord: @deltav0rtex Slack: deltavortex Can’t wait to hear the feedback and all the bugs you dig up. —this is the end*— *end for now, redeem codes permitting YIPEE!!!...
|
1792878434.706125
|
1793742434.706125
|
|
34425
|
Will's Site by @Gooderswills | Stardance
|
Gooderswills
|
2
|
4.0
|
8
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-04T16:29:29Z", "hours": 3.0, "multiplier": 2.81, "payout": 8, "blessing": "neutral", "text": "I have made quite a few changes since the first version of my website, here they are: I added my email to the contact me section, added my projects to my website, added links to other subdomains, started a blog, added what I am studying, added a photos section where I upload cool photos I have taken, added a custom 404 page and added what programming languages I know", "repo": "https://github.com/Gooderswills/WillsSite", "demo": "https://gooderswills.github.io/WillsSite/"}, {"ship_num": 2, "ts": "2026-07-13T18:48:45Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I was able to make my personal site that includes information about me and in a style that I like, it is fully custom and functions correctly", "repo": "https://github.com/Gooderswills/WillsSite", "demo": "https://gooderswills.github.io/WillsSite/"}]...
|
[{"post_id": 75611, "ts": "202 [{"post_id": 75611, "ts": "2026-09-30T15:38:08Z", "hours": 1.5614, "text": "It’s been a while! But I have been making changes to my site throughout, some of these changes are: Added what subject I am studying, changed the links to lead to github (more professional), made a photo section where cool photos I take go, added the PyDesk link to the subdomains section, added navbar spacing and finally I added a custom 404 page and my skills (what programming languages I know)"}, {"post_id": 59776, "ts": "2026-09-01T18:28:26Z", "hours": 0.6797, "text": "I added a blog.html file so that I could make a blog section on my website, I also added the blog link on my main site, I then wrote my first blog about AI and then I ensure it all worked and linked the css up. I also added home and all blog pages to the blogs foe easier navigation View my first blog here: https://wgdev.uk/blog/state-of-ai-september-2026"}, {"post_id": 50429, "ts": "2026-08-19T16:26:44Z", "hours": 0.5511, "text": "I added my gmail so people can email me if needed, I also added some of my stardance projects to my website, I then also added links to the subdomains at the bottom, this could help with search optimisation but is mainly there for people to view some cool projects easier"}, {"post_id": 27846, "ts": "2026-07-13T18:46:13Z", "hours": 0.3308, "text": "I updated the styling, making it look cooler and more polished, I also added a readme file and published the website to github pages, overall the website looks and functions better now"}, {"post_id": 27730, "ts": "2026-07-13T15:26:48Z", "hours": 0.6622, "text": "I filled the basic structure and followed the tutorial so that I was able to include everything, I created the Read me. next I need to add more details and add better css"}]...
|
Title: Will's Site by @Gooderswills | Stardanc Title: Will's Site by @Gooderswills | Stardance
Devlogs:
I filled the basic structure and followed the tutorial so that I was able to include everything, I created the Read me. next I need to add more details and add better css
I updated the styling, making it look cooler and more polished, I also added a readme file and published the website to github pages, overall the website looks and functions better now
I added my gmail so people can email me if needed, I also added some of my stardance projects to my website, I then also added links to the subdomains at the bottom, this could help with search optimisation but is mainly there for people to view some cool projects easier
I added a blog.html file so that I could make a blog section on my website, I also added the blog link on my main site, I then wrote my first blog about AI and then I ensure it all worked and linked the css up. I also added home and all blog pages to the blogs foe easier navigation View my first blog here: https://wgdev.uk/blog/state-of-ai-september-2026
It’s been a while! But I have been making changes to my site throughout, some of these changes are: Added what subject I am studying, changed the links to lead to github (more professional), made a photo section where cool photos I take go, added the PyDesk link to the subdomains section, added navbar spacing and finally I added a custom 404 page and my skills (what programming languages I know)
Ships:
I was able to make my personal site that includes information about me and in a style that I like, it is fully custom and functions correctly
I have made quite a few changes since the first version of my website, here they are: I added my email to the contact me section, added my projects to my website, added links to other subdomains, started a blog, added what I am studying, added a photos section where I upload cool photos I have taken, added a custom 404 page and added what programming languages I know...
|
1792828438.823572
|
1792914838.823572
|
|
34601
|
Tempo by @evanssidhu | Stardance
|
evanssidhu
|
2
|
97.0
|
1805
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T05:07:17Z", "hours": 4.0, "multiplier": 11.52, "payout": 50, "blessing": "neutral", "text": "This is the second ship of the project. This is a pretty small ship aimed at addressing some feedback posted during my last ship. Originally I planned to do a complete UI overhaul, but I decided to just focus on minor improvements now since I have to balance projects with school and don’t know if I am going to have time to work on projects as much. I also want to take a little break from projects to focus on my mental health as well since I have been dedicating multiple hours almost every day purely on making projects. Anyways, enough about that and back to the project. If you want to see the changes from the previous ship, I have them outlined in the devlog below. If you want to see the main features added in the first ship, I have it posted as well shortly below to read. Thank you and I hope you like using my project, if you have any more feedback please outline it in your vote message as I love hearing how I can make my projects better. If you do not want to scroll down to the previous ship message or the readme, here is it posted below. Previous Ship Message Tempo is finally complete. It took way too many hours to finish, mostly through self inflicted pain of using hooks instead of asynchronous functions for the engine. I know that this might not be the greatest project for how long it took, but I am proud to say that it’s finally been shipped even after the many times I wanted to quit. I made this project because I play a little bit of chess and after getting limited to only 1 game review per day I thought it would be a good idea to make my own game review (yes I know other sites exist but wheres the fun in that). Anyways enough about that, here are the project features (definetly not copied from the readme) Features Game Review: Check how well you played in your previous games by simply entering your chess.com username or by manually loading a pgn file. Move Feedback: Instant updates on how well the engine thinks your move is. Move Classifications: How well the engine evaluates your moves. Classifications such as Miss, Great, or Brilliant are also included. Engine Lines: What the engine thinks is the best line to play in a position. Accuracies: How accurate you played relative to the best moves Graph: A visual and interactive graph on how much your expected win percentage changed throughout a game Classification Report: A total summary of how many of each type of move you played History Tree: View the total game history and easily branch off the main path. Play: Play against a friend in person, or play against the engine. Custom positions can be used as well. Custom Positions: Set up a custom position to load later. Settings: Change the app or board theme. If you are still reading this, thank you and I hope you enjoy using my site.", "repo": "https://github.com/es1228/Tempo", "demo": "https://es1228.github.io/Tempo/"}, {"ship_num": 2, "ts": "2026-08-16T22:48:34Z", "hours": 93.0, "multiplier": 18.77, "payout": 1755, "blessing": "neutral", "text": "Ship Message Tempo is finally complete. It took way too many hours to finish, mostly through self inflicted pain of using hooks instead of asynchronous functions for the engine. I know that this might not be the greatest project for how long it took, but I am proud to say that it’s finally been shipped even after the many times I wanted to quit. I made this project because I play a little bit of chess and after getting limited to only 1 game review per day I thought it would be a good idea to make my own game review (yes I know other sites exist but wheres the fun in that). Anyways enough about that, here are the project features (definetly not copied from the readme) Features Game Review: Check how well you played in your previous games by simply entering your chess.com username or by manually loading a pgn file. Move Feedback: Instant updates on how well the engine thinks your move is. Move Classifications: How well the engine evaluates your moves. Classifications such as Miss, Great, or Brilliant are also included. Engine Lines: What the engine thinks is the best line to play in a position. Accuracies: How accurate you played relative to the best moves Graph: A visual and interactive graph on how much your expected win percentage changed throughout a game Classification Report: A total summary of how many of each type of move you played History Tree: View the total game history and easily branch off the main path. Play: Play against a friend in person, or play against the engine. Custom positions can be used as well. Custom Positions: Set up a custom position to load later. Settings: Change the app or board theme. If you are still reading this, thank you and I hope you enjoy using my site.", "repo": "https://github.com/es1228/Tempo", "demo": "https://es1228.github.io/Tempo/"}]...
|
[{"post_id": 63372, "ts": "202 [{"post_id": 63372, "ts": "2026-09-07T04:54:05Z", "hours": 0.6231, "text": "Devlog 24 Small devlog, I was about to do another ship after addressing the feedback from last time, but I noticed a small bug where brilliant moves did not show sometimes. It turns out the issue was much simpler than I was testing for and it was due to a small multiplication sign error when converting the mate evaluation to centipawns to check if a move was winning."}, {"post_id": 63350, "ts": "2026-09-07T03:58:57Z", "hours": 3.7075, "text": "Devlog 23 Hello again everybody! I know its been a long time since I last worked on this project, but I read the feedback on this project and addressed your suggestions. Most of the feedback was on ui/ux improvements, so as a result I removed all mentions of infinity/nan on the site, as it looks rather unpolished and unprofessional. I also changed the modal dialogs from the built in alert function to a less intrusive custom toast notification. Lastly, a couple people said the engine took slightly long to make moves, so I slightly lowered the engine depth for games and also removed another delay I originally added to make the engine feel more human like in its thinking time. In terms of the game review engine I decided to keep it the same as it works pretty quickly due to a worker pool being used, but I did change the dialog slightly to make it feel like something is happening in the background, which suprisingly actually makes it feel faster. Anyways, to everyone that tried this project and gave feedback, thank you as it was much appreciated."}, {"post_id": 48501, "ts": "2026-08-16T21:30:43Z", "hours": 1.5022, "text": "Devlog 22 The site is now live. I actually had a lot of issues in deploying this site for some reason (mainly due to the large stockfish binaries stored in git lfs and the coi serviceworker) and my deployments just kept failing. I eventually got it straightened out now and I am ready to ship the project."}, {"post_id": 47758, "ts": "2026-08-15T21:57:35Z", "hours": 2.4678, "text": "Devlog 21 The history view has finally been properly migrated to a tree structure. Now since that is finally complete, I know it has been long overdue but it is finally time to ship this project."}, {"post_id": 47293, "ts": "2026-08-15T04:37:46Z", "hours": 6.0658, "text": "Devlog 20 Another devlog here focusing on bug fixes, and I am happy to say that almost everything is pretty much complete. I’ve fixed pretty much every out of sync issue, and even got game reviews to load pretty much instantly. It literally took only around 5 seconds to load a 65 move game, so that is finally optimized. I think the issue was some web workers were not terminating properly and taking up too much memory. Anyways I hope to finally have this project out very soon, and the only thing I might to is try to get the history tree working. Today I actually did kind of get it to work but it caused massive performance degradations for some reason and was causing some conflicts with other components as well."}, {"post_id": 47078, "ts": "2026-08-14T18:24:08Z", "hours": 4.785, "text": "Devlog 19 More progress has been made adding features and fixing bugs. I’ll highlight the changes below. Features Game Chart The game chart has been updated to include custom dots and lines showing the move classifications and key points during the game (brilliant moves, great moves, mistake, blunder, and miss). You can also click on the chart to go to that move. History View The history view has now been updated to show the classification icons next to the move, which should make it easier to find moves you are looking for Fixes/Optimizations Memoization Data in the game chart has now been memoized. This prevents the chart from crashing the page due to trying to process data many times per second. Stockfish evaluations Game review evaluations now use an active worker pool to run multiple evaluations at once rather than just one at a time. Positions are also cached now so all evaluations share 1 chess instance. In practice, this has reduced the game review time for a 20 move game from over 1 minute to around 7 seconds, which is around a 90% decrease."}, {"post_id": 46601, "ts": "2026-08-13T23:14:42Z", "hours": 2.3281, "text": "Devlog 18 A few things in this devlog, I separated the game review panel into 2 sections containing the review report and engine analysis. I’ve also refined the classifications for great and brilliant. Brilliant Move Changes The sacrifice can now be anywhere on the board, not just for the piece that moved Trading a lower value piece for a higher value piece (ex: taking a knight but losing a pawn) no longer counts as brilliant Illegal moves (pins, checks, etc.,) no longer contribute to the attacking piece values Great Move Changes Taking a hanging piece or trading lower value pieces for higher value pieces (ex: capturing a hanging queen or recapturing during a trade) no longer count as great moves."}, {"post_id": 46134, "ts": "2026-08-13T04:37:45Z", "hours": 1.8517, "text": "Devlog 17 After a long time, I’ve finally added brilliant moves. This was done by comparing a squares attackers and defenders to determine if the piece is hanging. If a move results in that piece being hanging/sacrificed, and is the top engine move, then the classification will return brilliant. I’ve attached an example below in a game where GothamChess does what he does best and sacrifices both his rooks."}, {"post_id": 46084, "ts": "2026-08-13T01:13:20Z", "hours": 3.2308, "text": "Devlog 16 I’ve added the last 2 features related to game review, accuracies and the eval chart. The last thing I plan to to is add some polish, brilliant moves, and maybe try working on the history/pgn tree again."}, {"post_id": 45932, "ts": "2026-08-12T18:35:37Z", "hours": 2.4761, "text": "Devlog 15 I’ve added a few more features related to game review in this devlog. First, I added a section to view the top 2 engine lines on each move. I’ve also added a table to view classifications for the entire game."}, {"post_id": 45416, "ts": "2026-08-11T20:58:03Z", "hours": 0.9417, "text": "Devlog 14 I’m going to post more frequently as this project gets wrapped up, and I’ve just finished caching the game review data so feedback is instant if you load in game to review. I also decided to add colors to the start and end squares based on classification because it looks nice. I’ve attached a video below, I don’t know why my screen recorder records very laggy but I promise it’s not actually that laggy."}, {"post_id": 45004, "ts": "2026-08-11T04:20:50Z", "hours": 4.3753, "text": "Devlog 13 I’ve been working on the game review stats, and i’ve implemented a function to classify an entire game and tally up the classifications (which was actually harder than it looked, since i needed to rewrite my hooks since hooks cannot be called within functions). It now works pretty decently, but I do want to optimize performance a bit since it takes a while. Funnily enough there was an issue where if the worker resolved too early it would not terminate and create a memory leak and eat your entire system memory, but thats fixed now."}, {"post_id": 44308, "ts": "2026-08-09T23:45:35Z", "hours": 7.9586, "text": "Devlog 12 I really don’t like going this long without posting a devlog, but debugging move classifications was really painful. I encountered an issue where if you went through many moves very quickly, it resulted in classifications not working properly since stockfish could only give evaluations for the current move. This is not ideal since most classifications require checking the evaluation drop, which requires 2+ points of evaluation. I tried many things, first I tried running 3 different stockfish web workers inside the stockfish hook, which caused a couple issues and was not very performant. Next I tried using a single worker and passing in 3 positions, however since the web worker is single threaded it didn’t really work all that well. I also tried using a queue to run each instance one at a time, but that got complex quickly and still did not work. I also wanted to merge the classification and evaluation hooks, which created a 500 line mess of a file which was a nightmare to maintain. Finally, I decided to revert all my changes and keep the hooks separate and simple, and created 3 instances of evaluation hooks within my classification hook. This was much cleaner and actually worked really well, so I wasted 8 hours making things too complex.# Devlog 12 I really don’t like going this long without posting a devlog, but debugging move classifications was really painful. I encountered an issue where if you went through many moves very quickly, it resulted in classifications not working properly since stockfish could only give evaluations for the current move. This is not ideal since most classifications require checking the evaluation drop, which requires 2+ points of evaluation. I tried many things, first I tried running 3 different stockfish web workers inside the stockfish hook, which caused a couple issues and was not very performant. Next I tried using a single worker and passing in 3 positions, however since the web worker is single threaded it didn’t really work all that well. I also tried using a queue to run each instance one at a time, but that got complex quickly and still did not work. I also wanted to merge the classification and evaluation hooks, which created a 500 line mess of a file which was a nightmare to maintain. Finally, I decided to revert all my changes and keep the hooks separate and simple, and created 3 instances of evaluation hooks within my classification hook. This was much cleaner and actually worked really well, so I wasted 8 hours making things too complex."}, {"post_id": 41619, "ts": "2026-08-05T22:47:45Z", "hours": 2.9967, "text": "Devlog 11 I am finally back to this project, and this time did not wait 8 hours to post a devlog. Anyways, I added two major features today, custom position imports (which I forgot to do last time) and engine play. Features Custom Position Imports You can now import a position into the custom position editor, which is great for things like loading puzzles and endgames to practice against the engine. You can also export positions by pressing the copy button to copy the position fen to the clipboard. Play Against Engine You can now play games against stockfish, and choose a difficulty level from 0-20. As mentioned above I believe this is a quite useful feature for things like just playing by yourself or practicing different endgames against the computer. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls Board Themes/Styles Miss and Great moves History View Play In Person Custom Position Setup Play Against Engine Full Game Review/Engine Analysis (In Progress) Brilliant Moves"}, {"post_id": 37328, "ts": "2026-07-29T23:27:39Z", "hours": 8.7039, "text": "Devlog 10 I finished work on in-person gameplay and custom position setups, all that is left now is to finish adding engine play, polish game review, and add brilliant moves. Promotions You can now choose the piece you would like to promote to (no longer auto queen). In Person Play You can now create a game to be played in person between 2 people. Time controls are also availible. Custom Positions You can now load custom positions via drag and drop, which is useful for practicing endgames or creating puzzles. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls Board Themes/Styles Miss and Great moves History View Play In Person Custom Position Setup [] Full Game Review/Engine Analysis (In Progress) Play Against Engine (In Progress) Brilliant Moves"}, {"post_id": 36679, "ts": "2026-07-28T21:54:34Z", "hours": 8.5064, "text": "Devlog 9 I tried to convert the history from a linear array into a tree, and it did not go well. I spent literal hours trying to get it to work and look at tutorials, but it just did not want to work. So for now i’ve decided to stop working on that feature, and just focus on the last few remaining tasks. I do have to fix a couple of things since a lot of features are currently in progress, but I will post another devlog later showing the updated features."}, {"post_id": 34189, "ts": "2026-07-24T18:26:16Z", "hours": 7.4164, "text": "Devlog 8 Sorry again for the long devlog, some things took a bit longer than I expected. Anyways, icons/glyphs have been added in this devlog. I’ve also fixed some issues with move backtracking. Additional classifications such as miss and great have been added, which took a while since I had to do a lot of refactors to store all the data in cache, and I also didn’t realize I sometimes was tracking the evaluations for the next moves, not the ones just played, which took a while New classifications Miss : Miss is when the previous player makes a bad move, but the next player fails to capitalize on it causing the evaluation to drop back to near where it was before. Great : Great moves are the only moves in the position that work, provided that the outcome is drawn or winning and you are not already winning had you not played the move. It compares 2 lines of stockfish to evaluate the evaluation difference and check for the conditions outlined above. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls Board Themes/Styles Miss and Great moves History View (In Progress) Full Game Review/Engine Analysis (In Progress) Play In Person Play Against Engine Custom Position Setup Brilliant Moves"}, {"post_id": 33467, "ts": "2026-07-23T13:22:55Z", "hours": 2.5939, "text": "Devlog 7 Lots of QOL features and fixes added today, i’ve added a basic view of move history, and added a settings page where you can change the theme of the website or board. Next, I do want to work on features that do not involve the game review, such as pass and play or engine play. Move History You can now properly go through a game’s moves and view all played moves in the side pane. Themes Website theming has been added, alongside being able to choose the colors you would like the board to be. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls Board Themes/Styles History View (In Progress) Full Game Review/Engine Analysis (In Progress) Play In Person Play Against Engine Custom Position Setup Advanced Classifications (Miss, Great, Brilliant)"}, {"post_id": 32763, "ts": "2026-07-22T03:57:08Z", "hours": 3.5231, "text": "Devlog 6 Second devlog today, this is more of an extension of the previous devlog since a lot of features were not fully polished yet. Since then move playback has been added and I also added a game review container. Most of the logic has now been implemented, all thats left now is a little polish and styling. The only logic thats left is trying to find a way to add proper move history and advanced classifications. I also attached a demo video this time since I forgot to last devlog. Move Playback It is now possible to use arrows to traverse forwards and backwards if a PGN file is imported. Game Review Container I added a little side container which will be used to show the stats of the game review. Currently it only shows the opening and move feedback, but it will be expanded to show accuracies and a full breakdown of the analysis and position similar to chess.com. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls History View Board Themes/Styles Play In Person Play Against Engine Custom Position Setup Advanced Classifications (Miss, Great, Brilliant) Changelog 0e4db3c e2552b0"}, {"post_id": 32610, "ts": "2026-07-21T21:52:00Z", "hours": 8.4406, "text": "Devlog 5 Sorry for the long devlog, some things took longer than expected. First I decided to waste time trying to improve the UI until I remembered I suck at design and just decided to revert to the original design. Then I spent forever wondering why my input textbox would not work properly just for me to change e.target.value to e.currentTarget.value. Although I guess where would the fun be if there was no struggle. Anyways, here are the features I added. Board Controls It is now possible to flip the board and go forwards and backwards through moves. Importing from other sources This one took a bit of time, but now you can import games from Chess.com, or provide your own PGN/FEN. Later on I’ll probably also add Lichess as an import source as well. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, Lichess, etc.,) (In Progress) Playback/History Controls (In Progress) Board Themes/Styles Play In Person Play Against Engine Custom Position Setup Advanced Classifications (Miss, Great, Brilliant)"}, {"post_id": 31026, "ts": "2026-07-19T02:37:20Z", "hours": 3.3967, "text": "Devlog 4 Site Styling Site styling has been added in this commit, and it also comes with light/dark mode. The evaluation bar has also been added, and is responsive based on the win probability formula. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Themes/Styles Play In Person Play Against Engine Playback/History Controls Importing from other sources (FEN, PGN, Chess.com, Lichess, etc.,) Custom Position Setup Advanced Classifications (Miss, Great, Brilliant)"}, {"post_id": 30437, "ts": "2026-07-17T23:52:15Z", "hours": 4.6394, "text": "Devlog 3 Move Classifications Move classifications have finally been added. I thought it wouldn’t take this long but instead I spent hours trying to deal with react asynchronous state and trying to coordinate different hooks to play along nicely. Thankfully it works properly now (hopefully). The classifications added are best, excellent, good, inaccuracy, mistake, blunder, and theory. Opening names have also been added as well. Next Steps Next, I’ll work on making the site actually look pretty and have functionality. Importing games should also come next after that. Towards the end i’ll add other classifications as well such as miss, great, and brilliant, however, I expect them to be more difficult as they have slightly stricter classifications."}, {"post_id": 29258, "ts": "2026-07-16T01:54:05Z", "hours": 3.6022, "text": "Devlog 2 Playable Chess! There is now a playable UI to play Chess games. This was done using a mix of chess.js for the logic and react-chessboard for the UI. Most of the logic was handled by the board, however click/drag to move took some time to add. There is also positional evaluations and engine feedback now. Next Steps Next, I plan on creating the actual site design and controls. I also want to add a way to import games from sites like chess.com, and have the ability to load a full game rather than just a position. Move classification is also something that should be implemented soon. Demo Video"}, {"post_id": 28068, "ts": "2026-07-14T02:54:31Z", "hours": 1.6744, "text": "Devlog 1 I started work on Tempo, a chess analysis site to review your games. Chess engines such as Stockfish are easily self-hostable anyways, so there is no reason for sites like chess.com to limit game analysis to 1 per day. What’s New Added move analysis using Stockfish, which is fully selfhosted. Figuring out web workers and UCI was pretty time consuming, but eventually I got the hang of it and figured it out. Next Steps Next, I plan to work on creating the chessboard and site UI. Later I’ll add move classifications such as “Blunder”, “Mistake”, “Excellent”, etc. Maybe i’ll add “Brilliant” moves, but there seems to be no clear definition of one other than “a good sacrifice”."}]...
|
Title: Tempo by @evanssidhu | Stardance
Devlogs:
Title: Tempo by @evanssidhu | Stardance
Devlogs:
Devlog 1 I started work on Tempo, a chess analysis site to review your games. Chess engines such as Stockfish are easily self-hostable anyways, so there is no reason for sites like chess.com to limit game analysis to 1 per day. What’s New Added move analysis using Stockfish, which is fully selfhosted. Figuring out web workers and UCI was pretty time consuming, but eventually I got the hang of it and figured it out. Next Steps Next, I plan to work on creating the chessboard and site UI. Later I’ll add move classifications such as “Blunder”, “Mistake”, “Excellent”, etc. Maybe i’ll add “Brilliant” moves, but there seems to be no clear definition of one other than “a good sacrifice”.
Devlog 2 Playable Chess! There is now a playable UI to play Chess games. This was done using a mix of chess.js for the logic and react-chessboard for the UI. Most of the logic was handled by the board, however click/drag to move took some time to add. There is also positional evaluations and engine feedback now. Next Steps Next, I plan on creating the actual site design and controls. I also want to add a way to import games from sites like chess.com, and have the ability to load a full game rather than just a position. Move classification is also something that should be implemented soon. Demo Video
Devlog 3 Move Classifications Move classifications have finally been added. I thought it wouldn’t take this long but instead I spent hours trying to deal with react asynchronous state and trying to coordinate different hooks to play along nicely. Thankfully it works properly now (hopefully). The classifications added are best, excellent, good, inaccuracy, mistake, blunder, and theory. Opening names have also been added as well. Next Steps Next, I’ll work on making the site actually look pretty and have functionality. Importing games should also come next after that. Towards the end i’ll add other classifications as well such as miss, great, and brilliant, however, I expect them to be more difficult as they have slightly stricter classifications.
Devlog 4 Site Styling Site styling has been added in this commit, and it also comes with light/dark mode. The evaluation bar has also been added, and is responsive based on the win probability formula. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Themes/Styles Play In Person Play Against Engine Playback/History Controls Importing from other sources (FEN, PGN, Chess.com, Lichess, etc.,) Custom Position Setup Advanced Classifications (Miss, Great, Brilliant)
Devlog 5 Sorry for the long devlog, some things took longer than expected. First I decided to waste time trying to improve the UI until I remembered I suck at design and just decided to revert to the original design. Then I spent forever wondering why my input textbox would not work properly just for me to change e.target.value to e.currentTarget.value. Although I guess where would the fun be if there was no struggle. Anyways, here are the features I added. Board Controls It is now possible to flip the board and go forwards and backwards through moves. Importing from other sources This one took a bit of time, but now you can import games from Chess.com, or provide your own PGN/FEN. Later on I’ll probably also add Lichess as an import source as well. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, Lichess, etc.,) (In Progress) Playback/History Controls (In Progress) Board Themes/Styles Play In Person Play Against Engine Custom Position Setup Advanced Classifications (Miss, Great, Brilliant)
Devlog 6 Second devlog today, this is more of an extension of the previous devlog since a lot of features were not fully polished yet. Since then move playback has been added and I also added a game review container. Most of the logic has now been implemented, all thats left now is a little polish and styling. The only logic thats left is trying to find a way to add proper move history and advanced classifications. I also attached a demo video this time since I forgot to last devlog. Move Playback It is now possible to use arrows to traverse forwards and backwards if a PGN file is imported. Game Review Container I added a little side container which will be used to show the stats of the game review. Currently it only shows the opening and move feedback, but it will be expanded to show accuracies and a full breakdown of the analysis and position similar to chess.com. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls History View Board Themes/Styles Play In Person Play Against Engine Custom Position Setup Advanced Classifications (Miss, Great, Brilliant) Changelog 0e4db3c e2552b0
Devlog 7 Lots of QOL features and fixes added today, i’ve added a basic view of move history, and added a settings page where you can change the theme of the website or board. Next, I do want to work on features that do not involve the game review, such as pass and play or engine play. Move History You can now properly go through a game’s moves and view all played moves in the side pane. Themes Website theming has been added, alongside being able to choose the colors you would like the board to be. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls Board Themes/Styles History View (In Progress) Full Game Review/Engine Analysis (In Progress) Play In Person Play Against Engine Custom Position Setup Advanced Classifications (Miss, Great, Brilliant)
Devlog 8 Sorry again for the long devlog, some things took a bit longer than I expected. Anyways, icons/glyphs have been added in this devlog. I’ve also fixed some issues with move backtracking. Additional classifications such as miss and great have been added, which took a while since I had to do a lot of refactors to store all the data in cache, and I also didn’t realize I sometimes was tracking the evaluations for the next moves, not the ones just played, which took a while New classifications Miss : Miss is when the previous player makes a bad move, but the next player fails to capitalize on it causing the evaluation to drop back to near where it was before. Great : Great moves are the only moves in the position that work, provided that the outcome is drawn or winning and you are not already winning had you not played the move. It compares 2 lines of stockfish to evaluate the evaluation difference and check for the conditions outlined above. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls Board Themes/Styles Miss and Great moves History View (In Progress) Full Game Review/Engine Analysis (In Progress) Play In Person Play Against Engine Custom Position Setup Brilliant Moves
Devlog 9 I tried to convert the history from a linear array into a tree, and it did not go well. I spent literal hours trying to get it to work and look at tutorials, but it just did not want to work. So for now i’ve decided to stop working on that feature, and just focus on the last few remaining tasks. I do have to fix a couple of things since a lot of features are currently in progress, but I will post another devlog later showing the updated features.
Devlog 10 I finished work on in-person gameplay and custom position setups, all that is left now is to finish adding engine play, polish game review, and add brilliant moves. Promotions You can now choose the piece you would like to promote to (no longer auto queen). In Person Play You can now create a game to be played in person between 2 people. Time controls are also availible. Custom Positions You can now load custom positions via drag and drop, which is useful for practicing endgames or creating puzzles. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls Board Themes/Styles Miss and Great moves History View Play In Person Custom Position Setup [] Full Game Review/Engine Analysis (In Progress) Play Against Engine (In Progress) Brilliant Moves
Devlog 11 I am finally back to this project, and this time did not wait 8 hours to post a devlog. Anyways, I added two major features today, custom position imports (which I forgot to do last time) and engine play. Features Custom Position Imports You can now import a position into the custom position editor, which is great for things like loading puzzles and endgames to practice against the engine. You can also export positions by pressing the copy button to copy the position fen to the clipboard. Play Against Engine You can now play games against stockfish, and choose a difficulty level from 0-20. As mentioned above I believe this is a quite useful feature for things like just playing by yourself or practicing different endgames against the computer. Roadmap Stockfish Web Worker Chessboard/Gameplay Basic Classifications Opening Names Evaluation Bar Site Styling Board Controls Importing from other sources (FEN, PGN, Chess.com, etc.,) Playback Controls Board Themes/Styles Miss and Great moves History View Play In Person Custom Position Setup Play Against Engine Full Game Review/Engine Analysis (In Progress) Brilliant Moves
Devlog 12 I really don’t like going this long without posting a devlog, but debugging move classifications was really painful. I encountered an issue where if you went through many moves very quickly, it resulted in classifications not working properly since stockfish could only give evaluations for the current move. This is not ideal since most classifications require checking the evaluation drop, which requires 2+ points of evaluation. I tried many things, first I tried running 3 different stockfish web workers inside the stockfish hook, which caused a couple issues and was not very performant. Next I tried using a single worker and passing in 3 positions, however since the web worker is single threaded it didn’t really work all that well. I also tried using a queue to run each instance one at a time, but that got complex quickly and still did not work. I also wanted to merge the classification and evaluation hooks, which created a 500 line mess of a file which was a nightmare to maintain. Finally, I decided to revert all my changes and keep the hooks separate and simple, and created 3 instances of evaluation hooks within my classification hook. This was much cleaner and actually worked really well, so I wasted 8 hours making things too complex.# Devlog 12 I really don’t like going this long without posting a devlog, but debugging move classifications was really painful. I encountered an issue where if you went through many moves very quickly, it resulted in classifications not working properly since stockfish could only give evaluations for the current move. This is not ideal since most classifications require checking the evaluation drop, which requires 2+ points of evaluation. I tried many things, first I tried running 3 different stockfish web workers inside the stockfish hook, which caused a couple issues and was not very performant. Next I tried using a single worker and passing in 3 positions, however since the web worker is single threaded it didn’t really work all that well. I also tried using a queue to run each instance one at a time, but that got complex quickly and still did not work. I also wanted to merge the classification and evaluation hooks, which created a 500 line mess of a file which was a nightmare to maintain. Finally, I decided to revert all my changes and keep the hooks separate and simple, and created 3 instances of evaluation hooks within my classification hook. This was much cleaner and actually worked really well, so I wasted 8 hours making things too complex.
Devlog 13 I’ve been working on the game review stats, and i’ve implemented a function to classify an entire game and tally up the classifications (which was actually harder than it looked, since i needed to rewrite my hooks since hooks cannot be called within functions). It now works pretty decently, but I do want to optimize performance a bit since it takes a while. Funnily enough there was an issue where if the worker resolved too early it would not terminate and create a memory leak and eat your entire system memory, but thats fixed now.
Devlog 14 I’m going to post more frequently as this project gets wrapped up, and I’ve just finished caching the game review data so feedback is instant if you load in game to review. I also decided to add colors to the start and end squares based on classification because it looks nice. I’ve attached a video below, I don’t know why my screen recorder records very laggy but I promise it’s not actually that laggy.
Devlog 15 I’ve added a few more features related to game review in this devlog. First, I added a section to view the top 2 engine lines on each move. I’ve also added a table to view classifications for the entire game.
Devlog 16 I’ve added the last 2 features related to game review, accuracies and the eval chart. The last thing I plan to to is add some polish, brilliant moves, and maybe try working on the history/pgn tree again.
Devlog 17 After a long time, I’ve finally added brilliant moves. This was done by comparing a squares attackers and defenders to determine if the piece is hanging. If a move results in that piece being hanging/sacrificed, and is the top engine move, then the classification will return brilliant. I’ve attached an example below in a game where GothamChess does what he does best and sacrifices both his rooks.
Devlog 18 A few things in this devlog, I separated the game review panel into 2 sections containing the review report and engine analysis. I’ve also refined the classifications for great and brilliant. Brilliant Move Changes The sacrifice can now be anywhere on the board, not just for the piece that moved Trading a lower value piece for a higher value piece (ex: taking a knight but losing a pawn) no longer counts as brilliant Illegal moves (pins, checks, etc.,) no longer contribute to the attacking piece values Great Move Changes Taking a hanging piece or trading lower value pieces for higher value pieces (ex: capturing a hanging queen or recapturing during a trade) no longer count as great moves.
Devlog 19 More progress has been made adding features and fixing bugs. I’ll highlight the changes below. Features Game Chart The game chart has been updated to include custom dots and lines showing the move classifications and key points during the game (brilliant moves, great moves, mistake, blunder, and miss). You can also click on the chart to go to that move. History View The history view has now been updated to show the classification icons next to the move, which should make it easier to find moves you are looking for Fixes/Optimizations Memoization Data in the game chart has now been memoized. This prevents the chart from crashing the page due to trying to process data many times per second. Stockfish evaluations Game review evaluations now use an active worker pool to run multiple evaluations at once rather than just one at a time. Positions are also cached now so all evaluations share 1 chess instance. In practice, this has reduced the game review time for a 20 move game from over 1 minute to around 7 seconds, which is around a 90% decrease.
Devlog 20 Another devlog here focusing on bug fixes, and I am happy to say that almost everything is pretty much complete. I’ve fixed pretty much every out of sync issue, and even got game reviews to load pretty much instantly. It literally took only around 5 seconds to load a 65 move game, so that is finally optimized. I think the issue was some web workers were not terminating properly and taking up too much memory. Anyways I hope to finally have this project out very soon, and the only thing I might to is try to get the history tree working. Today I actually did kind of get it to work but it caused massive performance degradations for some reason and was causing some conflicts with other components as well.
Devlog 21 The history view has finally been properly migrated to a tree structure. Now since that is finally complete, I know it has been long overdue but it is finally time to ship this project.
Devlog 22 The site is now live. I actually had a lot of issues in deploying this site for some reason (mainly due to the large stockfish binaries stored in git lfs and the coi serviceworker) and my deployments just kept failing. I eventually got it straightened out now and I am ready to ship the project.
Devlog 23 Hello again everybody! I know its been a long time since I last worked on this project, but I read the feedback on this project and addressed your suggestions. Most of the feedback was on ui/ux improvements, so as a result I removed all mentions of infinity/nan on the site, as it looks rather unpolished and unprofessional. I also changed the modal dialogs from the built in alert function to a less intrusive custom toast notification. Lastly, a couple people said the engine took slightly long to make moves, so I slightly lowered the engine depth for games and also removed another delay I originally added to make the engine feel more human like in its thinking time. In terms of the game review engine I decided to keep it the same as it works pretty quickly due to a worker pool being used, but I did change the dialog slightly to make it feel like something is happening in the background, which suprisingly actually makes it feel faster. Anyways, to everyone that tried this project and gave feedback, thank you as it was much appreciated.
Devlog 24 Small devlog, I was about to do another ship after addressing the feedback from last time, but I noticed a small bug where brilliant moves did not show sometimes. It turns out the issue was much simpler than I was testing for and it was due to a small multiplication sign error when converting the mate evaluation to centipawns to check if a move was winning.
Ships:
Ship Message Tempo is finally complete. It took way too many hours to finish, mostly through self inflicted pain of using hooks instead of asynchronous functions for the engine. I know that this might not be the greatest project for how long it took, but I am proud to say that it’s finally been shipped even after the many times I wanted to quit. I made this project because I play a little bit of chess and after getting limited to only 1 game review per day I thought it would be a good idea to make my own game review (yes I know other sites exist but wheres the fun in that). Anyways enough about that, here are the project features (definetly not copied from the readme) Features Game Review: Check how well you played in your previous games by simply entering your chess.com username or by manually loading a pgn file. Move Feedback: Instant updates on how well the engine thinks your move is. Move Classifications: How well the engine evaluates your moves. Classifications such as Miss, Great, or Brilliant are also included. Engine Lines: What the engine thinks is the best line to play in a position. Accuracies: How accurate you played relative to the best moves Graph: A visual and interactive graph on how much your expected win percentage changed throughout a game Classification Report: A total summary of how many of each type of move you played History Tree: View the total game history and easily branch off the main path. Play: Play against a friend in person, or play against the engine. Custom positions can be used as well. Custom Positions: Set up a custom position to load later. Settings: Change the app or board theme. If you are still reading this, thank you and I hope you enjoy using my site.
This is the second ship of the project. This is a pretty small ship aimed at addressing some feedback posted during my last ship. Originally I planned to do a complete UI overhaul, but I decided to just focus on minor improvements now since I have to balance projects with school and don’t know if I am going to have time to work on projects as much. I also want to take a little break from projects to focus on my mental health as well since I have been dedicating multiple hours almost every day purely on making projects. Anyways, enough about that and back to the project. If you want to see the changes from the previous ship, I have them outlined in the devlog below. If you want to see the main features added in the first ship, I have it posted as well shortly below to read. Thank you and I hope you like using my project, if you have any more feedback please outline it in your vote message as I love hearing how I can make my projects better. If you do not want to scroll down to the previous ship message or the readme, here is it posted below. Previous Ship Message Tempo is finally complete. It took way too many hours to finish, mostly through self inflicted pain of using hooks instead of asynchronous functions for the engine. I know that this might not be the greatest project for how long it took, but I am proud to say that it’s finally been shipped even after the many times I wanted to quit. I made this project because I play a little bit of chess and after getting limited to only 1 game review per day I thought it would be a good idea to make my own game review (yes I know other sites exist but wheres the fun in that). Anyways enough about that, here are the project features (definetly not copied from the readme) Features Game Review: Check how well you played in your previous games by simply entering your chess.com username or by manually loading a pgn file. Move Feedback: Instant updates on how well the engine thinks your move is. Move Classifications: How well the engine evaluates your moves. Classifications such as Miss, Great, or Brilliant are also included. Engine Lines: What the engine thinks is the best line to play in a position. Accuracies: How accurate you played relative to the best moves Graph: A visual and interactive graph on how much your expected win percentage changed throughout a game Classification Report: A total summary of how many of each type of move you played History Tree: View the total game history and easily branch off the main path. Play: Play against a friend in person, or play against the engine. Custom positions can be used as well. Custom Positions: Set up a custom position to load later. Settings: Change the app or board theme. If you are still reading this, thank you and I hope you enjoy using my site....
|
1792839004.8747327
|
1792925404.8747327
|
|
34641
|
AccountantOS by @samarth_hota | Stardance
|
samarth_hota
|
2
|
4.0
|
6
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-04T21:27:19Z", "hours": 1.0, "multiplier": 11.11, "payout": 6, "blessing": "neutral", "text": "Accountant OS: What I made: I built Accountant OS, a lightweight, browser-based OS -type app for, get this… Accountants . It runs natively in the browser via one HTML file for a “lightweight experience.” What was challenging: Structuring the layout to feel like a true “operating system” rather than just a standard web page took some trial and error. Additionally, routing the logic for the accounting widgets and ensuring the interactive elements updated dynamically without breaking the UI required careful attention to the code structure. //Tryna make this part professional twin. What I am proud of: I am really proud of the user interface and the “retro” design. Taking standard HTML and turning it into a customized, app-like environment is a great milestone, and I’m happy with how nostalgic it looks. What users should know so they can test this: Testing is completely frictionless (Stardance pun intented) you don’t need to install any heavy software or databases. Just download the .html file and double-click it to open it in your preferred web browser. Keep in mind that because it is a localized browser app, your data will reset if you refresh the page. //basically it has no memory but trust the process.", "repo": "https://github.com/samarthhota-cyber/Accountant-os", "demo": "https://samarthhota-cyber.github.io/Accountant-os/"}, {"ship_num": 2, "ts": "2026-07-19T00:42:06Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made this my own webOS, accountant OS. This webOS, primarily built in html, is a standalone web operating system with draggable windows, apps and FYI this will be updated sometime in the future.", "repo": "https://github.com/samarthhota-cyber/Accountant-os", "demo": "https://samarthhota-cyber.github.io/Accountant-os/"}]...
|
[{"post_id": 31607, "ts": "202 [{"post_id": 31607, "ts": "2026-07-20T04:33:51Z", "hours": 0.5083, "text": "1 introdction of the Centralized Database Explorer (DATABASE.EXE)Then (v1.0): Text storage and calculation values operated on disconnected, static page inputs. There was no capability to organize, create, or navigate multiple independent documents.Now (v5.0): Added a multi-node Directory manager that functions as a virtual relational file-system stored in local memory. Users can categorize files by format (Documents or Sheets), monitor file metadata (bytes, edit times), delete nodes, and initiate new files which load into editing buffers upon double-clicking.2. Fully Functional Dynamic Spreadsheet Grid (SHEETS.EXE)Then (v1.0): The spreadsheet app was restricted to a static HTML table structure representing a fixed, hard-coded tax margin computation form.Now (v5.0): Transformed into an interactive, multi-document 4x6 grid with column headers (A–D) and row indices (1–6). Includes a dedicated Excel-style Formula Bar that reads active cells and parses custom math-reference strings (e.g., =A1+B1 or =B4-B3-B5). Changes are evaluated instantly.3. Custom Accountant OS Bookkeeping Theme & Mechanical Click SynthThen (v1.0): Styling was standard retro-grey, styled specifically around flat color panels. Keyboard interaction was silent.Now (v5.0): Polished the design with the warm parchment-colored Vintage Ledger theme, featuring custom margins and double-underlined ledger rules. Created a custom Web Audio API synthesizer that produces retro mechanical keyclick sound effects whenever the user types inside a document, spreadsheet cell, or terminal panel.4. Upgraded Multi-Document Buffer & File Association (DOCS.EXE)Then (v1.0): The notepad component supported editing only one single global string buffer without file associations.Now (v5.0): Fully integrated the text editor with the centralized directory database. The interface tracks active file-handling buffers, displays file state labels, and features a “Commit to DB” protocol to save edits back into the primary database.5. Interactive BIOS Boot loaderThen (v1.0): Accessing the page immediately showed the desktop environment with no startup stage.Now (v5.0): Implemented a classic AMI-style BIOS welcome sequence. The terminal tests RAM, registers system assets, and generates a boot chime using browser audio oscillators to ensure proper context registration before revealing the operating system.6. Refined Window Geometry with Viewport Clamping and Storage Save StateThen (v1.0): Draggable windows lacked boundary constraints, letting users pull elements entirely out of bounds. Window positions, sizes, and open/close states were lost on reload.Now (v5.0): Upgraded the dragging engine with boundary checks, clamping window positions within desktop margins. Window coordinates, width/height dimensions, minimization status, and active directories are saved to localStorage and recovered on bootup. Added a dynamic taskbar tabs manager that tracks window focus and supports minimize-to-tray switching.7. Real-Time Vector Sparklines & Sound VisualizerThen (v1.0): The asset simulation was limited to numeric text fields updating at fixed intervals. The audio synthesizer was a basic sound button with no graphic feedback.Now (v5.0): Integrated an HTML sparkline renderer inside the asset terminal, drawing historical market price lines for machinery (green) and T-bills (yellow). Additionally, added an animated equalizer visualizer inside the synth control applet that animates to procedural frequencies."}, {"post_id": 30990, "ts": "2026-07-19T00:36:09Z", "hours": 0.2892, "text": "Finished up a few touches and is ready for the world."}, {"post_id": 30960, "ts": "2026-07-18T23:40:10Z", "hours": 2.2033, "text": "I changed it to accountant os, and made drastic improvments with new apps and a retro looking desktop(which was pretty easy)."}, {"post_id": 28061, "ts": "2026-07-14T02:42:13Z", "hours": 0.3336, "text": "im making a referee os themed os"}]...
|
Title: AccountantOS by @samarth_hota | Stardance
Title: AccountantOS by @samarth_hota | Stardance
Devlogs:
im making a referee os themed os
I changed it to accountant os, and made drastic improvments with new apps and a retro looking desktop(which was pretty easy).
Finished up a few touches and is ready for the world.
1 introdction of the Centralized Database Explorer (DATABASE.EXE)Then (v1.0): Text storage and calculation values operated on disconnected, static page inputs. There was no capability to organize, create, or navigate multiple independent documents.Now (v5.0): Added a multi-node Directory manager that functions as a virtual relational file-system stored in local memory. Users can categorize files by format (Documents or Sheets), monitor file metadata (bytes, edit times), delete nodes, and initiate new files which load into editing buffers upon double-clicking.2. Fully Functional Dynamic Spreadsheet Grid (SHEETS.EXE)Then (v1.0): The spreadsheet app was restricted to a static HTML table structure representing a fixed, hard-coded tax margin computation form.Now (v5.0): Transformed into an interactive, multi-document 4x6 grid with column headers (A–D) and row indices (1–6). Includes a dedicated Excel-style Formula Bar that reads active cells and parses custom math-reference strings (e.g., =A1+B1 or =B4-B3-B5). Changes are evaluated instantly.3. Custom Accountant OS Bookkeeping Theme & Mechanical Click SynthThen (v1.0): Styling was standard retro-grey, styled specifically around flat color panels. Keyboard interaction was silent.Now (v5.0): Polished the design with the warm parchment-colored Vintage Ledger theme, featuring custom margins and double-underlined ledger rules. Created a custom Web Audio API synthesizer that produces retro mechanical keyclick sound effects whenever the user types inside a document, spreadsheet cell, or terminal panel.4. Upgraded Multi-Document Buffer & File Association (DOCS.EXE)Then (v1.0): The notepad component supported editing only one single global string buffer without file associations.Now (v5.0): Fully integrated the text editor with the centralized directory database. The interface tracks active file-handling buffers, displays file state labels, and features a “Commit to DB” protocol to save edits back into the primary database.5. Interactive BIOS Boot loaderThen (v1.0): Accessing the page immediately showed the desktop environment with no startup stage.Now (v5.0): Implemented a classic AMI-style BIOS welcome sequence. The terminal tests RAM, registers system assets, and generates a boot chime using browser audio oscillators to ensure proper context registration before revealing the operating system.6. Refined Window Geometry with Viewport Clamping and Storage Save StateThen (v1.0): Draggable windows lacked boundary constraints, letting users pull elements entirely out of bounds. Window positions, sizes, and open/close states were lost on reload.Now (v5.0): Upgraded the dragging engine with boundary checks, clamping window positions within desktop margins. Window coordinates, width/height dimensions, minimization status, and active directories are saved to localStorage and recovered on bootup. Added a dynamic taskbar tabs manager that tracks window focus and supports minimize-to-tray switching.7. Real-Time Vector Sparklines & Sound VisualizerThen (v1.0): The asset simulation was limited to numeric text fields updating at fixed intervals. The audio synthesizer was a basic sound button with no graphic feedback.Now (v5.0): Integrated an HTML sparkline renderer inside the asset terminal, drawing historical market price lines for machinery (green) and T-bills (yellow). Additionally, added an animated equalizer visualizer inside the synth control applet that animates to procedural frequencies.
Ships:
I made this my own webOS, accountant OS. This webOS, primarily built in html, is a standalone web operating system with draggable windows, apps and FYI this will be updated sometime in the future.
Accountant OS: What I made: I built Accountant OS, a lightweight, browser-based OS -type app for, get this… Accountants . It runs natively in the browser via one HTML file for a “lightweight experience.” What was challenging: Structuring the layout to feel like a true “operating system” rather than just a standard web page took some trial and error. Additionally, routing the logic for the accounting widgets and ensuring the interactive elements updated dynamically without breaking the UI required careful attention to the code structure. //Tryna make this part professional twin. What I am proud of: I am really proud of the user interface and the “retro” design. Taking standard HTML and turning it into a customized, app-like environment is a great milestone, and I’m happy with how nostalgic it looks. What users should know so they can test this: Testing is completely frictionless (Stardance pun intented) you don’t need to install any heavy software or databases. Just download the .html file and double-click it to open it in your preferred web browser. Keep in mind that because it is a localized browser app, your data will reset if you refresh the page. //basically it has no memory but trust the process....
|
1792849945.449854
|
1792936345.449854
|
|
34987
|
Ma-Site by @MuhammadAayanMirza | Stardance
|
MuhammadAayanMirza
|
2
|
32.45
|
323
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T03:45:02Z", "hours": 18.0, "multiplier": 13.12, "payout": 289, "blessing": "neutral", "text": "This is my First time coding! So like most people I made a Personal Site. The site is made using HTML, CSS and JavaScript, all of which I learned in the making of this website. There is a fun loading screen when you open the site, the arrow in the home section is clickable, and all the project cards and game cards are interactive and lead you to their respective links upon clicking. The “Email me” button in the contact section leads you straight to my email. Hope you like the Site!!", "repo": "https://github.com/MuhammadAayanMirza/Ma-Site", "demo": "https://muhammadaayanmirza.github.io/Ma-Site/"}, {"ship_num": 2, "ts": "2026-07-23T11:12:08Z", "hours": 12.0, "multiplier": 2.78, "payout": 34, "blessing": "neutral", "text": "This Is My First Time Coding, So Like Most People I Made A Personal Site. I Learned A lot From This Journey, Huge Credit Goes To @Irtaza For Teaching Me Most Of The Code And What it Does. This Website Includes 3 Main Sections, Home, About Me, And Projects. The Contact Button On The Nav Bar Will Directly Lead You To My Email. Each Project Is Clickable And Leads To Their Respective Model. The Social Media Images Are Also Intractable. The Text And Image In The Home Section Increase Size When You Hover Over Them.", "repo": "https://github.com/MuhammadAayanMirza/Ma-Site", "demo": "https://muhammadaayanmirza.github.io/Ma-Site/"}]...
|
[{"post_id": 72705, "ts": "202 [{"post_id": 72705, "ts": "2026-09-23T15:24:35Z", "hours": 2.4514, "text": "Back to making this site even better!! In this session I dived deep into JavaScript to create this animated moving background for the site which I saw on @Irtaza ’s site and I liked it alot. So I spent all this time trying to figure out how that works because I have no idea how JavaScript works. I also added my new game “The Lat Dig” to the game section aswell with a clickable link."}, {"post_id": 47864, "ts": "2026-08-16T03:33:55Z", "hours": 0.5792, "text": "Added some finishing touches to the site, made the site completely compatible on mobile and created a brand new Readme with pictures of all the sections of Ma-Site. Now I think I’m ready to ship this project and hopefully people of the Stardance community will like it!"}, {"post_id": 47596, "ts": "2026-08-15T16:15:49Z", "hours": 2.9853, "text": "Created the Contact section of the site with an interactive button that if you click will lead you straight to my email and the button glows really cool upon hovering on it. Most of the time in this session was spent on making all the elements on the desktop site also look the same or similar on the mobile site. This took a ton ton of time and I’m still fiddling around with it. Other than that I think the version 2 of Ma-Site is complete and I will soon ship this project and hopefully get a better multiplier than 2.78x ."}, {"post_id": 47401, "ts": "2026-08-15T09:50:29Z", "hours": 1.8664, "text": "Redesigned the Home section a bit and added a brand new Games section with the one game I have made called “Hyper Slide”. Also now when you hover over the project cards and game card a drop shadow appears behind them making it feel like they are lifted above the page a bit which is cool. Now the site actually feels like a proper usable fun site. Now I need to add a proper contact section and maybe add something else that makes the website feel a bit more complete!"}, {"post_id": 47306, "ts": "2026-08-15T05:30:28Z", "hours": 1.7797, "text": "Redesigned the Projects section and added an animated arrow in the home section which is clickable and leads to the about me section in a smooth manner."}, {"post_id": 47059, "ts": "2026-08-14T17:48:42Z", "hours": 3.1622, "text": "Used JavaScript for the first time to animate the loading of the about section. Changed up the whole colour palette again because the last one was feeling a bit too dull and also polished up the about section of the site. I’m still experimenting with the projects section’s colours and layout and I still need to animate that. It tales me alot of time to do this because this is my first ever coding project and learning new things takes a bit of time."}, {"post_id": 46813, "ts": "2026-08-14T10:13:39Z", "hours": 1.7314, "text": "Changed the colours of the project cards, changed font colours, removed a piece of text which wasn’t needed. Redid the whole About me section visually and adjusted all the sizes of elements across thew website. I’m still working on the sections to make em better and a new section is coming soon 👀"}, {"post_id": 46456, "ts": "2026-08-13T17:53:56Z", "hours": 1.0542, "text": "Added a loading screen with the text “Welcome” in some different languages and ending of with “I’m Aayan” because I’m Aayan. Also got rid of the curly arrows and small text as I think the landing page looks cleaner without it. The animation part was very difficult for me because it was very new to me, I started of by using JavaScript but for some reason that didn’t work I had to go back to the trusty old CSS."}, {"post_id": 46411, "ts": "2026-08-13T16:30:52Z", "hours": 2.2386, "text": "Still working on the landing page. I experimented alot with different Profile images, fonts for texts, navigation bar settings and the colour ways of the site. I want to get it right this time and make a strong base for the site!!"}, {"post_id": 45864, "ts": "2026-08-12T16:24:43Z", "hours": 1.5567, "text": "Adjusted all the components of the landing page, shifted the nav bar to the right which somehow removed the background of nav bar from the left side so also fixed that, tweaked what happens when you hover over the nav bar sections and added cool curly arrows to tell my interests in the first page. hope people like the colour scheme and layout now!"}, {"post_id": 45760, "ts": "2026-08-12T13:45:18Z", "hours": 1.4381, "text": "As I didn’t get any good ratings on my last ship, I’m redesigning my whole website. Starting of with colour palettes and the landing page. Let’s see where this goes."}, {"post_id": 33423, "ts": "2026-07-23T10:48:22Z", "hours": 0.7358, "text": "There Were A Ton Of Issues That Popped Up On The Mobile Site. The Big One Was That There Was Overflow-x on the right hand side of the website on mobile. It Took Ages To Only Fix That Issue. When That Issue Was Fixed, Then The Nav Bar Started To Act Weird As It Was Not Following Along The Page Anymore. But Overall I’m Quite Happy With The Site. I Think It Is A Good First Coding Project For Me."}, {"post_id": 33392, "ts": "2026-07-23T09:26:23Z", "hours": 1.5422, "text": "Made The Website Mobile Friendly By Using CSS And The @media screen feature. Also Made All The Social Links In One Container For Better Alignment And Made Their Size Smaller So That They Don’t Feel Odd On The Page."}, {"post_id": 33093, "ts": "2026-07-22T18:08:29Z", "hours": 2.1575, "text": "I Refined The About Me Section. I Added PNGs Of The Social Platforms I Post Content On, I Made The PNGs Interactable So That When You Click Them They Lead You To The Respective Platform With My Profile Opened. I Also Refined The Navigation Bar After A Bit Of Tinkering With The Colour Wheel And Borders. Added Some Borders Around the Home Page And Underlines Under The Section’s Titles."}, {"post_id": 32936, "ts": "2026-07-22T12:40:36Z", "hours": 1.9381, "text": "Finished The Projects Section. Learned A Whole Lot. Tinkered A lot With The Code. Made A Container With Multiple Divs, Added Images, Text And A Link To The Divs, So That When You Hover Over The Projects The Size Increases Slightly And If You Click Anywhere On The Image, text Or Background of The Project, It Will Direct You To The Project Link. Changed The Colour Scheme Of It A lot To See What Looked Best. I’m Quite Happy With This!"}, {"post_id": 32791, "ts": "2026-07-22T05:36:26Z", "hours": 1.2383, "text": "Completed The About Me Section Of The Site. Wrote A Thoughtful Paragraph About Myself And Added An Animated Text So That When You Are Reading The About Me Paragraph The Text Beneath “Loads in”. I Made A Link And Learned How To Make It Separate From The Other Links. I Also Added A Home Tab At The Top, I Felt It Was Needed."}, {"post_id": 32365, "ts": "2026-07-21T14:23:46Z", "hours": 1.9994, "text": "Thanks to my friend @Irtaza . I now know how to make all these cool things like changing the colour of your link, how to make them intractable, how to add a gradient background on to a container and make it animated so that the gradient moves and looks super duper amazing. Speaking of a container, I know how to make it finally and contain the text and image as one, so that it can be used in the css file. Margins were very infuriating but in the end it all worked out!"}, {"post_id": 31689, "ts": "2026-07-20T09:31:10Z", "hours": 0.56, "text": "I Learned How To Create Links, How To Add A Navigation Bar At The Top And How To Add Your Gmail As A Link. I’m Now Further Working On The About Me Section Trying To Refine It And Make It Look A Bit Professional!"}, {"post_id": 31161, "ts": "2026-07-19T10:27:07Z", "hours": 0.5992, "text": "Played Heavily Around With Fonts, Font sizes, Margins, etc. Made The Image a more suitable size and overall just having fun with it!"}, {"post_id": 29603, "ts": "2026-07-16T17:22:20Z", "hours": 1.2956, "text": "Learned CSS from my Friend @Irtaza and I am enjoying coding now. seeing the result of what you code is really cool!! Also the Color command wasn’t working for me because I kept typing “colour” instead of color, I lived in The UK, that’s what it is meant to be ."}, {"post_id": 28455, "ts": "2026-07-14T18:23:40Z", "hours": 0.2506, "text": "First time coding anything, I’m finding the syntax difficult. Im kinda dumb…"}]...
|
Title: Ma-Site by @MuhammadAayanMirza | Stardance
Title: Ma-Site by @MuhammadAayanMirza | Stardance
Devlogs:
First time coding anything, I’m finding the syntax difficult. Im kinda dumb…
Learned CSS from my Friend @Irtaza and I am enjoying coding now. seeing the result of what you code is really cool!! Also the Color command wasn’t working for me because I kept typing “colour” instead of color, I lived in The UK, that’s what it is meant to be .
Played Heavily Around With Fonts, Font sizes, Margins, etc. Made The Image a more suitable size and overall just having fun with it!
I Learned How To Create Links, How To Add A Navigation Bar At The Top And How To Add Your Gmail As A Link. I’m Now Further Working On The About Me Section Trying To Refine It And Make It Look A Bit Professional!
Thanks to my friend @Irtaza . I now know how to make all these cool things like changing the colour of your link, how to make them intractable, how to add a gradient background on to a container and make it animated so that the gradient moves and looks super duper amazing. Speaking of a container, I know how to make it finally and contain the text and image as one, so that it can be used in the css file. Margins were very infuriating but in the end it all worked out!
Completed The About Me Section Of The Site. Wrote A Thoughtful Paragraph About Myself And Added An Animated Text So That When You Are Reading The About Me Paragraph The Text Beneath “Loads in”. I Made A Link And Learned How To Make It Separate From The Other Links. I Also Added A Home Tab At The Top, I Felt It Was Needed.
Finished The Projects Section. Learned A Whole Lot. Tinkered A lot With The Code. Made A Container With Multiple Divs, Added Images, Text And A Link To The Divs, So That When You Hover Over The Projects The Size Increases Slightly And If You Click Anywhere On The Image, text Or Background of The Project, It Will Direct You To The Project Link. Changed The Colour Scheme Of It A lot To See What Looked Best. I’m Quite Happy With This!
I Refined The About Me Section. I Added PNGs Of The Social Platforms I Post Content On, I Made The PNGs Interactable So That When You Click Them They Lead You To The Respective Platform With My Profile Opened. I Also Refined The Navigation Bar After A Bit Of Tinkering With The Colour Wheel And Borders. Added Some Borders Around the Home Page And Underlines Under The Section’s Titles.
Made The Website Mobile Friendly By Using CSS And The @media screen feature. Also Made All The Social Links In One Container For Better Alignment And Made Their Size Smaller So That They Don’t Feel Odd On The Page.
There Were A Ton Of Issues That Popped Up On The Mobile Site. The Big One Was That There Was Overflow-x on the right hand side of the website on mobile. It Took Ages To Only Fix That Issue. When That Issue Was Fixed, Then The Nav Bar Started To Act Weird As It Was Not Following Along The Page Anymore. But Overall I’m Quite Happy With The Site. I Think It Is A Good First Coding Project For Me.
As I didn’t get any good ratings on my last ship, I’m redesigning my whole website. Starting of with colour palettes and the landing page. Let’s see where this goes.
Adjusted all the components of the landing page, shifted the nav bar to the right which somehow removed the background of nav bar from the left side so also fixed that, tweaked what happens when you hover over the nav bar sections and added cool curly arrows to tell my interests in the first page. hope people like the colour scheme and layout now!
Still working on the landing page. I experimented alot with different Profile images, fonts for texts, navigation bar settings and the colour ways of the site. I want to get it right this time and make a strong base for the site!!
Added a loading screen with the text “Welcome” in some different languages and ending of with “I’m Aayan” because I’m Aayan. Also got rid of the curly arrows and small text as I think the landing page looks cleaner without it. The animation part was very difficult for me because it was very new to me, I started of by using JavaScript but for some reason that didn’t work I had to go back to the trusty old CSS.
Changed the colours of the project cards, changed font colours, removed a piece of text which wasn’t needed. Redid the whole About me section visually and adjusted all the sizes of elements across thew website. I’m still working on the sections to make em better and a new section is coming soon 👀
Used JavaScript for the first time to animate the loading of the about section. Changed up the whole colour palette again because the last one was feeling a bit too dull and also polished up the about section of the site. I’m still experimenting with the projects section’s colours and layout and I still need to animate that. It tales me alot of time to do this because this is my first ever coding project and learning new things takes a bit of time.
Redesigned the Projects section and added an animated arrow in the home section which is clickable and leads to the about me section in a smooth manner.
Redesigned the Home section a bit and added a brand new Games section with the one game I have made called “Hyper Slide”. Also now when you hover over the project cards and game card a drop shadow appears behind them making it feel like they are lifted above the page a bit which is cool. Now the site actually feels like a proper usable fun site. Now I need to add a proper contact section and maybe add something else that makes the website feel a bit more complete!
Created the Contact section of the site with an interactive button that if you click will lead you straight to my email and the button glows really cool upon hovering on it. Most of the time in this session was spent on making all the elements on the desktop site also look the same or similar on the mobile site. This took a ton ton of time and I’m still fiddling around with it. Other than that I think the version 2 of Ma-Site is complete and I will soon ship this project and hopefully get a better multiplier than 2.78x .
Added some finishing touches to the site, made the site completely compatible on mobile and created a brand new Readme with pictures of all the sections of Ma-Site. Now I think I’m ready to ship this project and hopefully people of the Stardance community will like it!
Back to making this site even better!! In this session I dived deep into JavaScript to create this animated moving background for the site which I saw on @Irtaza ’s site and I liked it alot. So I spent all this time trying to figure out how that works because I have no idea how JavaScript works. I also added my new game “The Lat Dig” to the game section aswell with a clickable link.
Ships:
This Is My First Time Coding, So Like Most People I Made A Personal Site. I Learned A lot From This Journey, Huge Credit Goes To @Irtaza For Teaching Me Most Of The Code And What it Does. This Website Includes 3 Main Sections, Home, About Me, And Projects. The Contact Button On The Nav Bar Will Directly Lead You To My Email. Each Project Is Clickable And Leads To Their Respective Model. The Social Media Images Are Also Intractable. The Text And Image In The Home Section Increase Size When You Hover Over Them.
This is my First time coding! So like most people I made a Personal Site. The site is made using HTML, CSS and JavaScript, all of which I learned in the making of this website. There is a fun loading screen when you open the site, the arrow in the home section is clickable, and all the project cards and game cards are interactive and lead you to their respective links upon clicking. The “Email me” button in the contact section leads you straight to my email. Hope you like the Site!!...
|
1792817758.8702874
|
1792904158.8702874
|
|
35003
|
Dock Reflections by @omeriadon | Stardance
|
omeriadon
|
2
|
5.0
|
25
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-21T01:48:15Z", "hours": 4.0, "multiplier": 6.78, "payout": 14, "blessing": "neutral", "text": "I made a bunch of improvements to Dock reflections from the first version, including more options, and I also found it was kinda hogging up cpu and gpu because it kept rerendering. I tried to lower it, but I had some difficulty because this code wasn’t running in my app its in some other process (the dock), so i couldnt really control it. and i couldnt cache the rendered image either because when the user hovers over the dock it magnifies and stuff. in all i got it down to like 20% cpu, which admittedly isn’t very good but on a more powerful machine i think its worth it!", "repo": "https://github.com/omeriadon/DockReflections", "demo": "https://github.com/omeriadon/DockReflections/releases/tag/v1"}, {"ship_num": 2, "ts": "2026-07-14T11:26:24Z", "hours": 1.0, "multiplier": 10.85, "payout": 11, "blessing": "neutral", "text": "I made an ammonia tweak that makes your Dock very pretty, with customisable options to adjust various things like blur opacity etc.", "repo": "https://github.com/omeriadon/DockReflections", "demo": "https://github.com/omeriadon/DockReflections/releases/tag/v1"}]...
|
[{"post_id": 29391, "ts": "202 [{"post_id": 29391, "ts": "2026-07-16T10:00:46Z", "hours": 1.77, "text": "I added a red ring around apple music when music is currently playing. i added animation at first but i found it too distracting, so i removed it and now its just a static red ring. it really pops now, which is really nice 🥰"}, {"post_id": 28801, "ts": "2026-07-15T09:31:24Z", "hours": 2.4033, "text": "The last version had a bug where it couldn’t colour tinted and clear icons properly, i have fixed that, and i think it looks really nice now!"}, {"post_id": 28224, "ts": "2026-07-14T11:25:10Z", "hours": 0.9847, "text": "This is quite a short project honestly. The way this works is that using Ammonia, which is a system tweak and extension loader for macOS, I inject some code into the macOS Dock that replaces the open-app indicator with my version as you can see below, and it adds a view below the app icons of the “reflected” app icons. I also made a small utility app to adjust these values in. This injection is unsafe and can crash your mac, and needs disabling multiple security options, so doing this isn’t recommended for most people, but I really like how these look so I’ll keep it. 🥰"}]...
|
Title: Dock Reflections by @omeriadon | Stardance
Title: Dock Reflections by @omeriadon | Stardance
Devlogs:
This is quite a short project honestly. The way this works is that using Ammonia, which is a system tweak and extension loader for macOS, I inject some code into the macOS Dock that replaces the open-app indicator with my version as you can see below, and it adds a view below the app icons of the “reflected” app icons. I also made a small utility app to adjust these values in. This injection is unsafe and can crash your mac, and needs disabling multiple security options, so doing this isn’t recommended for most people, but I really like how these look so I’ll keep it. 🥰
The last version had a bug where it couldn’t colour tinted and clear icons properly, i have fixed that, and i think it looks really nice now!
I added a red ring around apple music when music is currently playing. i added animation at first but i found it too distracting, so i removed it and now its just a static red ring. it really pops now, which is really nice 🥰
Ships:
I made an ammonia tweak that makes your Dock very pretty, with customisable options to adjust various things like blur opacity etc.
I made a bunch of improvements to Dock reflections from the first version, including more options, and I also found it was kinda hogging up cpu and gpu because it kept rerendering. I tried to lower it, but I had some difficulty because this code wasn’t running in my app its in some other process (the dock), so i couldnt really control it. and i couldnt cache the rendered image either because when the user hovers over the dock it magnifies and stuff. in all i got it down to like 20% cpu, which admittedly isn’t very good but on a more powerful machine i think its worth it!...
|
1792878433.061005
|
1793742433.061005
|
|
35042
|
Fruit fall by @nurofenracealasigripa | Stardance
|
nurofenracealasigripa
|
2
|
12.0
|
66
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T13:47:21Z", "hours": 1.0, "multiplier": 14.97, "payout": 12, "blessing": "neutral", "text": "Fruit fall: a cozy game in which you need to catch falling fruit and avoid bombs. I added 2 more apple variants to make the game more fun. I also made it so that the game becomes harder as you progress. Also, browser variant is curently not available. Enjoy! Note: the code for this version is in fruitfallV2.cpp", "repo": "https://github.com/stoicaandrei-blip/Fruit-fall", "demo": "https://github.com/stoicaandrei-blip/Fruit-fall/releases/tag/V2.0.0"}, {"ship_num": 2, "ts": "2026-08-05T14:10:34Z", "hours": 11.0, "multiplier": 4.99, "payout": 54, "blessing": "neutral", "text": "Fruit fall: a cozy game in which you need to catch falling fruit and avoid falling bombs. The objective is to have a big score while surviving as long as possible: catch a bomb or let an apple fall and not only do you lose a life, but you also lose points. After each game you can visit the stats page to see if you got a new highscore and the number of played games. Are you interested in discovering more games made by me - press the more games button. The feedback one redirects you to a form to fill out. For more details including a more datailed how to play, credits and how to install the game without problems go read the github readme file. I hope you have fun playing!", "repo": "https://github.com/stoicaandrei-blip/Fruit-fall", "demo": "https://github.com/stoicaandrei-blip/Fruit-fall/releases/tag/V2.0.0"}]...
|
[{"post_id": 44564, "ts": "202 [{"post_id": 44564, "ts": "2026-08-10T12:30:35Z", "hours": 0.2642, "text": "Devlog 9: I finished the game! I made it so that the game get’s a bit harder as you progress - the fruits fall faster. I also decided that a new menu variant simply isn’t needed since there are not that many buttons. i also don’t really know what game to do next :) Those changes have been added to github as v2.0.0"}, {"post_id": 44045, "ts": "2026-08-09T15:41:33Z", "hours": 0.5269, "text": "Devlog 8: I started updating the game. First of all i added 2 more apple variants: green and yellow. The red one only adds points, the yellow one adds 2 points instead of 1, and the yellow one adds a heart and 5 points.They are still not added on github :] I also had a small bug where if the health went over 4 it displayed an empty health bar."}, {"post_id": 40749, "ts": "2026-08-04T14:09:53Z", "hours": 1.3044, "text": "Devlog 7: I think this is the last devlog before the first version releases. The game was a bit too easy before so i made it so that you no longer can move the basket across the whole screen, only left or right. Also, i noticed there was a bug where all the bombs would spawn on the right and the apples on the left and i had to debug that for a while - it turns out it was a problem with the generating functions because all of them used the same seed."}, {"post_id": 40255, "ts": "2026-08-03T17:37:56Z", "hours": 2.8761, "text": "Devlog 6: Almost finished the entire game. i added a custom font to display the score. I added the stats page which displays the highscore and the number of games played. I also added an intro music and did some debugging: when you entered the stats page the stats would reset - it turned out to be the placement of the reset button. Instead of changing it, I added a timer that doesn’t let you reset the stats in the first second you are in the stats page. I thought i finished the game, but as i was playtesting it i discovered some bugs. After i solve them, the game would be ready for release :) Edit: I finally finished the game and it seems that there are no bugs: There were 3: -I made it so that after an apple falls on the ground you lose a heart, but, because the game waited for the health to reach less than 0, the game wouldn’t end as soon as you reached 0 health -The health bar wouldn’t reset after a game because i forgot to reset it -When a round ended, the wait timer triggered twice so you couldn’t play imidiately and the fruits would remain in the same position as before at the start of the new round - these 2 needed only minor code tweaks Here are some photos:"}, {"post_id": 36388, "ts": "2026-07-28T13:47:29Z", "hours": 1.3572, "text": "Devlog 5: I almost finished the gameplay :] Now, the fruit/bomb get’s deleted when touching the ground or the basket. I also added a health bar and if you catch a bomb you lose a heart. If you lose all of them you lose. I encountered a bug where the game would delete 2 fruits even if you caught only one. Next i will add a score counter, and the stats page."}, {"post_id": 35784, "ts": "2026-07-27T13:01:03Z", "hours": 1.6397, "text": "Devlog4: Started working on the gameplay: a random object spawns - a fruit or a bomb. They spawn at a random position at the top of the screen and fall towards the ground. I had a lot of trouble with the spawning :( and did a lot of debugging. Next, i will detect when the player catches an object and delete it."}, {"post_id": 30568, "ts": "2026-07-18T07:56:48Z", "hours": 1.1283, "text": "Devlog 3: I finally finished the menu(i added a button to turn off/on the music)! Also i started working on the gameplay: i drew the background and added a basket texture that will appear instead of the mouse’s arrow and made the start button functional.Next i will finish the gameplay :)"}, {"post_id": 29522, "ts": "2026-07-16T14:38:52Z", "hours": 1.5164, "text": "Devlog 2: I almost finished the menu. I drew the background image for it(you can see a timelapse down in the video), added the buttons: the play one(doesn’t work), stats one(also doesn’t work), exit(this one actually works, as well as the next ones), one that redirects you to a form to give feedback about the game and one that redirects you to my github profile to check out other games. The hardest part was adding the 2 buttons that redirect you since the procedure differs depending on OS(operating system if you didn’t know). To solve that i made a function that (theoretically) detect which OS the device is runnig and that adjusts the command, tho i could only test it for windows and it works correctly. Also i spent some time debugging the code because the background image wouldn’t show up - it turns out i set the origin wrong :|."}, {"post_id": 28345, "ts": "2026-07-14T15:24:54Z", "hours": 0.9317, "text": "Devlog 1: I have started a new game : Fruit fall. The idea is simple: you have to catch as many falling fruits as you can. If you catch a bomb or let a fruit fall to the ground you lose a heart. If you lose 3 hearts you lose. For the first day i did an intro screen that will play for the first 3 times you enter the game. The intro screen show what you see below and the fades away. Tommorow i will create the menu and some functions. Also i will try to post the journey on youtube. This is the channel: https://www.youtube.com/@Violentshrimpproductions"}]...
|
Title: Fruit fall by @nurofenracealasigripa | Star Title: Fruit fall by @nurofenracealasigripa | Stardance
Devlogs:
Devlog 1: I have started a new game : Fruit fall. The idea is simple: you have to catch as many falling fruits as you can. If you catch a bomb or let a fruit fall to the ground you lose a heart. If you lose 3 hearts you lose. For the first day i did an intro screen that will play for the first 3 times you enter the game. The intro screen show what you see below and the fades away. Tommorow i will create the menu and some functions. Also i will try to post the journey on youtube. This is the channel: https://www.youtube.com/@Violentshrimpproductions
Devlog 2: I almost finished the menu. I drew the background image for it(you can see a timelapse down in the video), added the buttons: the play one(doesn’t work), stats one(also doesn’t work), exit(this one actually works, as well as the next ones), one that redirects you to a form to give feedback about the game and one that redirects you to my github profile to check out other games. The hardest part was adding the 2 buttons that redirect you since the procedure differs depending on OS(operating system if you didn’t know). To solve that i made a function that (theoretically) detect which OS the device is runnig and that adjusts the command, tho i could only test it for windows and it works correctly. Also i spent some time debugging the code because the background image wouldn’t show up - it turns out i set the origin wrong :|.
Devlog 3: I finally finished the menu(i added a button to turn off/on the music)! Also i started working on the gameplay: i drew the background and added a basket texture that will appear instead of the mouse’s arrow and made the start button functional.Next i will finish the gameplay :)
Devlog4: Started working on the gameplay: a random object spawns - a fruit or a bomb. They spawn at a random position at the top of the screen and fall towards the ground. I had a lot of trouble with the spawning :( and did a lot of debugging. Next, i will detect when the player catches an object and delete it.
Devlog 5: I almost finished the gameplay :] Now, the fruit/bomb get’s deleted when touching the ground or the basket. I also added a health bar and if you catch a bomb you lose a heart. If you lose all of them you lose. I encountered a bug where the game would delete 2 fruits even if you caught only one. Next i will add a score counter, and the stats page.
Devlog 6: Almost finished the entire game. i added a custom font to display the score. I added the stats page which displays the highscore and the number of games played. I also added an intro music and did some debugging: when you entered the stats page the stats would reset - it turned out to be the placement of the reset button. Instead of changing it, I added a timer that doesn’t let you reset the stats in the first second you are in the stats page. I thought i finished the game, but as i was playtesting it i discovered some bugs. After i solve them, the game would be ready for release :) Edit: I finally finished the game and it seems that there are no bugs: There were 3: -I made it so that after an apple falls on the ground you lose a heart, but, because the game waited for the health to reach less than 0, the game wouldn’t end as soon as you reached 0 health -The health bar wouldn’t reset after a game because i forgot to reset it -When a round ended, the wait timer triggered twice so you couldn’t play imidiately and the fruits would remain in the same position as before at the start of the new round - these 2 needed only minor code tweaks Here are some photos:
Devlog 7: I think this is the last devlog before the first version releases. The game was a bit too easy before so i made it so that you no longer can move the basket across the whole screen, only left or right. Also, i noticed there was a bug where all the bombs would spawn on the right and the apples on the left and i had to debug that for a while - it turns out it was a problem with the generating functions because all of them used the same seed.
Devlog 8: I started updating the game. First of all i added 2 more apple variants: green and yellow. The red one only adds points, the yellow one adds 2 points instead of 1, and the yellow one adds a heart and 5 points.They are still not added on github :] I also had a small bug where if the health went over 4 it displayed an empty health bar.
Devlog 9: I finished the game! I made it so that the game get’s a bit harder as you progress - the fruits fall faster. I also decided that a new menu variant simply isn’t needed since there are not that many buttons. i also don’t really know what game to do next :) Those changes have been added to github as v2.0.0
Ships:
Fruit fall: a cozy game in which you need to catch falling fruit and avoid falling bombs. The objective is to have a big score while surviving as long as possible: catch a bomb or let an apple fall and not only do you lose a life, but you also lose points. After each game you can visit the stats page to see if you got a new highscore and the number of played games. Are you interested in discovering more games made by me - press the more games button. The feedback one redirects you to a form to fill out. For more details including a more datailed how to play, credits and how to install the game without problems go read the github readme file. I hope you have fun playing!
Fruit fall: a cozy game in which you need to catch falling fruit and avoid bombs. I added 2 more apple variants to make the game more fun. I also made it so that the game becomes harder as you progress. Also, browser variant is curently not available. Enjoy! Note: the code for this version is in fruitfallV2.cpp...
|
1792875253.0223382
|
1793739253.0223382
|
|
35149
|
Wingspan for Pterodactyl by @brahmtejsawhney | Sta Wingspan for Pterodactyl by @brahmtejsawhney | Stardance...
|
brahmtejsawhney
|
2
|
38.44
|
680
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T07:32:22Z", "hours": 14.0, "multiplier": 17.93, "payout": 246, "blessing": "neutral", "text": "Hello! If you are new here, welcome! This is my flagship project called Wingspan, It’s used by system administrators and infrastructure managers to manage their virtual servers in bulk rather than one by one. This project works in the terminal with AMAZING Terminal UI! This is my second ship. I have worked on making the Server Purge Function, to easily delete servers in large quantities. In my previous ships, I worked on making the basics of the code and functions to index and search the database. I have received extremely positive comments for this project, and i’m really proud of making it! Do star it on github if you like this one!", "repo": "https://github.com/brahmtej2009/wingspan", "demo": "https://github.com/brahmtej2009/Wingspan/blob/main/SHIPWRIGHTS.md"}, {"ship_num": 2, "ts": "2026-09-23T10:49:52Z", "hours": 24.0, "multiplier": 18.44, "payout": 434, "blessing": "neutral", "text": "Welcome to WingSpan, A project to bulk manage your self hosted hardware on pterodactyl. Easily search through servers, get detailed information, export lists based on precise filtering and more! It is made for people like me, who manage hundreds of servers daily, and need to perform bulk actions on them. Its posted on frictionless mission because it would make my life really easy as it automates a lot of my work and would save me a LOT of clicks! cant wait for you to try it out! <3", "repo": "https://github.com/brahmtej2009/wingspan", "demo": "https://github.com/brahmtej2009/Wingspan/blob/main/SHIPWRIGHTS.md"}]...
|
[{"post_id": 80768, "ts": "202 [{"post_id": 80768, "ts": "2026-10-18T18:48:38Z", "hours": 0.4375, "text": "ps: not an official devlog, just an update Show and Tell + Super Star This was another great show and tell, and OMG SUPER STAR! Thanks @Lazyllama ❤️ Ty guys, rly grateful!! Image shows me submitting to Show and Tell and 2nd Image showing my Super Star!"}, {"post_id": 80312, "ts": "2026-10-17T07:27:32Z", "hours": 2.9072, "text": "Devlog 19 Show and Tell #1 WINNER Project! 🏆 Progress Done Purge function has been completely created. I have worked on API Request Error Catching in duration of this devlog. I have integrated all the standard practices and error catching which is required, and now the program displays the error and a solution to fix it. Also, it tracks if there are any errors due to wingspan itself, and provides resolution! Great Stuff! I also started work on User Purge Function, which i’ll release in the ship after shipping Server Purge. There was a bug in the release file, which prevented auto update in windows. Fixed that. Features Added/Worked on Better API Requests to Pterodactyl Rate Limit detector and queue Error Catching and Resolution Server Purge Function Completed Started work on User Purge What new I learnt I learnt to work with industry standard error catching I learnt to make better API systems I learnt to work with queues and rate limiters I learnt to use DELETE Protocol What I would be working on Completing Documentation till here Shipping till Server Purge AI Declaration Claude was used to find out bug in release file only. No AI was used in code during the span of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Release Page of the project, project homepage and some lovely previous votes screenshots."}, {"post_id": 79114, "ts": "2026-10-12T18:33:47Z", "hours": 2.0575, "text": "Devlog 18 Progress Done Purge feature is now functional. Server purges are working as expected. I have added 4 purge methods. Parameters are Forced/Unforced, and Verified and Unverified.So, FV,FU,UV,UU. When you choose unforced method, it would ensure a clean deletion, and ensure the entire data is wiped. On a forced delete, it would delete it from frontend, and only attempt to clean it entirely. Force method is useful to delete servers whose nodes have been discontinued, or conditions where unforced wouldnt work. Verified feature ensures that the purge process goes as close to the expected outcome as possible, and if anything is detected which shouldnt be so, wingspan would prompt you there, so you can take manual action right there on the spot while it purges. Unverified means that wingspan would try its best to delete all the servers given in the importlist and would not prompt the user in case of discrepancies. Features Added/Worked on Import Verification Server Name Live Verification Completed Beta Purge Function Updated Menu to allow Purge Function Wingspan now needs an Admin API key with Full Perms (Readonly no longer works) What I would be working on Bugchecking all the features I made Attempting to delete some servers in massive quantities. Starting work on User Purge Function Do changes in README.md for the new purge function documentation. Find a good reliable Pterodactyl API Docs Website. AI Declaration No AI was used in code in the duration of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Graphical UI of the Purge Function along with the questions it asks."}, {"post_id": 78414, "ts": "2026-10-10T18:32:47Z", "hours": 3.1958, "text": "Devlog 17 Show and Tell #1 WINNER Project! 🏆 Progress Done Ship Approved! Yay! Also, Show and Tell Winner! So, during the span of this devlog, I have worked on creating release files for this project, in a way that they do not have to be updated everr! Also, I have worked on the Purge Function, and have completed the server list import, and have made major changes in server list export function, which now exports minimally required data only for security reasons. Also, I have made quite a lot of confirmations that the person has to fill in order for the servers to actually get deleted, which is a good practice so a person doesnt anciently delete their entire pterodactyl. Also, I have worked on advanced logging in the import system and a very smart directory checker. Also, exporting now adds the panel’s URL on top of the export file, so a wingspan session linked to another panel does not perform critical actions on wrong servers. It properly verifies the import file and gives a clear warning if needed. Features Added/Worked on Export Function Major Changes New Import Function Improved logging Purge Function Increased security and confirmations before taking critical actions. What new I learnt I learnt to export files I learnt to import files I learnt security and integrity tactics to prevent unwanted destruction I learnt to do better logging What I would be working on Completing server purge function Starting work on user purge function AI Declaration No AI was used in code in the duration of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached file shows and older video I recorded of me using the project."}, {"post_id": 77037, "ts": "2026-10-05T13:23:55Z", "hours": 5.5469, "text": "Devlog 16 Progress Done The project is still on its reviewing stage, in the meantime, I have worked on releasing the executable release for both windows and linux. The executables are internally dynamic, so it updates to the latest wingspan version on every boot. Alongside, I have also worked on a lot of bugfixes, added more detailed logging, Autoboot after Setup and more. I have also worked on the purge function, specifically on the server purge feature. I have completed the export function and import function for the server lists. So server lists could be imported to action functions. I have also worked on reducing the boot time for linux, and on a fresh install, its as little as 5 seconds for the complete install and setup. I’ll be releasing more things after the ship gets approved! Features Added/Worked on Enhanced Logging System Added Release Executables/Binaries Added Auto Updater Added Importer Function for exported server-lists Fixed bugs and slight performance enhancement for windows Massive performance enhancement for linux What new I learnt I learnt to make a formal logging system I learnt to create binaries of python I learnt how to export and import and edit csv I learnt to optimize code on linux I learnt to make Auto Updaters and Version Checkers What I would be working on Completing server purge function Improving performance for windows systems Adding verification of exports while importing them Warnings before destructive action AI Declaration No AI was used in code in the duration of this devlog. AI was used in helping me with creating the executables from the code. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Release Page of the project, Purge Window Screenshots and Export File Content Screenshots."}, {"post_id": 72609, "ts": "2026-09-23T10:33:51Z", "hours": 2.5994, "text": "Changelog Repo Created on Git, Code Uploaded. V1: Added: Server & Info Fn. Welcome to wingspan folks! <3"}, {"post_id": 71935, "ts": "2026-09-21T20:20:07Z", "hours": 4.2222, "text": "Devlog 14 Progress Done I know this is a very delayed devlog, I had my exams mid way. I’m into the 20th hour of the project, most of the stuff is made. API System is ready, most of the code which would be shared across multiple functions is ready. First function, of Bulk Search and server lookup is also complete. Server lookup function has a really cool UI. Alongside with that, I have also added export option to the Bulk Server Search, you can use the exported file on other functions which take actions on server. Features Added/Worked on Completed Bulk Search and Server Lookup Added server list export Added Shipwrights Docs (Readme for shipwrights) Worked on fixing bugs and README What new I learnt I learnt to work with CSV files I learnt to spoof responses to provide hardcoded outputs (For shipwrights testing) I learnt how to read and save data into json and env I learnt to add images into my Readme AI Declaration A little bit AI was used in CSV saving mechanics, so its saved in a way so could be read back easily for processing later. Server Lookup’s UI was heavily created with help of AI, as I was not able to achieve that high information density without use of AI. Rest, updates in README and SHIPWRIGHTS.md were all done by hand with 0% AI. The attached image shows the new Server Lookup UI, new readme with banner and terminal header, shipwrights file, csv file output."}, {"post_id": 36602, "ts": "2026-07-28T20:22:42Z", "hours": 0.5042, "text": "Devlog 13 Progress Done I did not do much today as the schedule was really busy, I have done a little bit of debugging and bughunting by testing with different kinds of server eggs and parameters on pterodactyl. I have not found any major issue yet, there were some little issues with server search function where some parameters would not show up, that is fixed. Rest, I also am working on the server info function and the readme. Features Added/Worked on Finished with Server Search Worked on CSV Export Started work on Server Info Function AI Declaration No AI Used for this devlog period The attached photos show the new updates to the readme and docs."}, {"post_id": 36001, "ts": "2026-07-27T20:15:25Z", "hours": 1.0306, "text": "Devlog 12 Progress Done I am now making the Server Info function, which provides all the server information in one very well managed panel. Thanks to my fellow developer @stef [U0823APHVK7], I got to know that most of the pterodactyl API docs out there are AI generated and are mostly inaccurate. The accurate one is: https://pterodactyl-api.redbanana.dev I have also experienced issues with Pterodactyl itself, not working right with parameter based data fetching, Il work more on it as most likely its some my side issue. I am also working on adding some kind of live table display right into the terminal to beautifully display the data from the Server Info function. Features Added/Worked on Finished with Server Search Worked on CSV Export Started work on Server Info Function AI Declaration No AI Used for this devlog period The attached video show the preview pics of the new Server Info function."}, {"post_id": 35424, "ts": "2026-07-26T20:28:47Z", "hours": 0.6428, "text": "Devlog 11 Progress Done Im in the 14th Hour of the project, and I have worked on the readme. I have written installation process, and scopes of this project. Also, I have added credits as required. All content is human written, no AI used. Features Added/Worked on Added Readme AI Declaration No AI Used for this devlog period The attached video show the preview pics of the readme."}, {"post_id": 34748, "ts": "2026-07-25T18:37:48Z", "hours": 1.3872, "text": "Devlog 10 Progress Done Im in the 13th hour of the project, and have completely finished the first feature of Searching and Indexing servers. This feature allows you to search from bulk server lists and filter out servers based on all the parameters. It also works with any extension which you may add in future which adds more parameters in the panel, its universally compatible. Next, I would be working on the Purge function, on which we would be using the Search and Info function, to export a csv list and import it into the purgetool to eliminate servers. Features Added/Worked on Refined menus and controls Added more colors Added support for complete universal API [Explained above] Finished with the first function of the software What new I learnt I learnt to work with APIs I learnt to manage big data I learnt to make really complicated nested loops I learnt to convert Json and Lists from 2D to 1D AI Declaration A little bit of AI was used to automate repetitive tasks to save time in the search and info function, where filter rules had to be created for each datatype separately and code was mostly same as I written by hand. AI was used to just change variable names and fit it for other datatypes. AI was also used for debugging and checking if everything works alright. Wherever AI was used, has an AI marker in the source code. The attached video show the first working function which is filtering servers based on user inputs."}, {"post_id": 34235, "ts": "2026-07-24T19:23:32Z", "hours": 0.445, "text": "Devlog 9 Progress Done Im working on the final parts of the first function, that is filtering and exporting. Next I would be moving onto purge manager and related functions which are more useful in real life. Input of the ID parameter was giving vague errors when provided with ranges, It took me a lot of debugging to find the source of the issue, and that was a string was being compared to an int (str<int) in a part of code where I didnt typecast. That is fixed now. AI Declaration Close to None AI was used for this devlog. The attached images show the accepted input of the ID field when put with a range."}, {"post_id": 33694, "ts": "2026-07-23T20:23:16Z", "hours": 0.3294, "text": "Devlog 8 Progress Done Im done with Search and Info function’s basics. Only export options and other advanced options are left to be created. This is a really little 15 minute devlog to mark the achievement of the first actual usable feature in the program, which took me about 11 hours, and this project would be having about 20 of such large functions, making this an extremely detailed and big project. In this devlog, I also want to thank each and every follower of mine, for taking interest in my project and supporting me! Thankyou. AI Declaration Close to None AI was used for this devlog. Everything was done by hand for self learning and improvement. The attached images show the Banner of project."}, {"post_id": 33143, "ts": "2026-07-22T19:44:20Z", "hours": 1.6344, "text": "Devlog 7 Progress Done Im into the 12th hour of the project, and I have done a lot of progress on the first function, which is search and info. I have worked on the parameter search option which is an extremely bulky work as im making it compatible with future upgrades and any extra addons that the user may have which cause changes in the API, I’m adding dynamic automatic support for new fields too for search, while taking all inputs and performing operations in the terminal. I am completely AVOIDING AI for this devlog, and focusing on complete self improvement and understanding of such deeply nested code structures. This is a partial devlog, meaning it doesnt mark a completion of a feature. AI Declaration Close to None AI was used for this devlog. Everything was done by hand for self learning and improvement. The attached images show the home page, followed by the new Search from Parameters Mode…"}, {"post_id": 32494, "ts": "2026-07-21T18:30:08Z", "hours": 3.0075, "text": "Devlog 6 Progress Done Its the 11th hour into the project and the progress is booming! I have started working on the interactive menus of the program. I have also started work on the first function, which is “Search and Info”, in which you can select parameters to search from, and it performs bulk search for you, which you can export to a file, or use in the program internally to trigger actions, or get detailed info about. I have also added terminal ui from curses in this, for the parameter selector, and it looks really good! I also worked on algorithms which convert data from pterodactyl to a usable format for mass bulk searching. I am making it in a way that some of the load is shared on the pterodactyl server side for filtering, and the rest is done on machine running this program, so I can minimize the rate limiting and divide load among both the machines for bulk processing and improve speed. For example, basic filter arguments are run on pterodactyl server’s side (Handled built in by pterodactyl), whereas advanced parameter searches are done on user side as generally user’s own system has more threads and is much better than the pterodactyl webserver. Features Added/Worked on Made menus and sections for first function Worked on algorithms to convert api responses to filterable data Worked on UI by adding curses based parameter selector Made first function, Search and Info What new I learnt I learnt to work with massive data and make algorithms to convert to usable data I learnt to make my first usable intractable terminal UI from curses I learnt to divide operations and perform load balancing for such bulk data AI Declaration Close to None AI was used for this devlog. All the algorithms which were made, where made completely by hand. AI was used for research purposes for curses as its a new field for me. All code blocks where AI has been used are marked in source code! The attached images show the home page, followed by new menus, along with the parameter selector and more…"}, {"post_id": 31424, "ts": "2026-07-19T19:41:27Z", "hours": 1.7656, "text": "Devlog 5 Progress Done Its about the 8th hour into the project, Since around the past 1 hour, I have been reading and understanding the entire pterodactyl API. Learning everything from sending requests to sorting data according to needs. Not much progress was done on the main project, though I did a lot of testing in temp files and had a lot of learning. What new I learnt I learnt to use RestJS API system of Pterodactyl I learnt to use Requests in Python I learnt to capture data and filter/manipulate it from APIs I learnt to manage rate limits and error codes Sources Pterodactyl API Docs: https://pterodactyl-api-docs.netvpx.com/docs/intro AI Declaration No AI was used for the period of this devlog. Most of the work was only done for understanding and learning purposes which was done in temp files which is essential for the project’s development. The attached images show the pterodactyl AI docs which I am reading and testing."}, {"post_id": 30613, "ts": "2026-07-18T10:19:26Z", "hours": 2.2778, "text": "Devlog 4 Progress Done Its about the 6th hour into the project, I have worked on making a terminal UI on which you can click up and down arrows and space button to select servers from a list to do actions. I did not work on actual API yet, thats kept for the last, currently I am working on data sorting and filter functions and more. I also made a cool banner for the project! Sorry for the late devlog, took a lot of time debugging and learning this one. Features Added/Worked on Made a cool image banner on canva [No AI] Worked on filtering functions Worked on a better terminal UI with curses Made HomePage What new I learnt I learnt Graphic Design with Canva I learnt to work with Curses to make terminal UI I learnt to capture button clicks on terminal for functions AI Declaration Close to None AI was used for this devlog. I used AI to understand how the curses library works and how to make it perform actions on button clicks. Also, the tech-pterodactyl symbol on the banner was made with AI as I couldnt find a similar icon on the internet. The attached images show the new banner, followed by the homepage and terminal selector UI demo."}, {"post_id": 28897, "ts": "2026-07-15T14:28:47Z", "hours": 1.6511, "text": "Devlog 3 Progress Done Its the 3rd hour into the project, and I have worked on adding args feature (specifically for linux users) and have worked on the project’s banner and interactive setup menu. I have also added verification in the setup fields to ensure that the user fills in correct information, and even guides the user if wrong keys are entered after 2 tries. Alongside with it, I added colors and made a cool ASCII banner. I also added the system to make venv automatically on first boot (supported on both linux/windows) for those who are running the code directly uncompiled. Features Added/Worked on Added Colorful ASCII Banner [Check Attached Image] Added field verification for setup- Added Args support, Eg. wingspan setup Improved POST Added Auto Venv and Dependency Installer What new I learnt I learnt to work with ASCII Color Codes I learnt to make args on python I learnt how to work with Venv I learnt to work with Terminal Commands from python to install dependencies AI Declaration AI was used for this devlog period for generating the automatic venv and dependencies installer, and making it compatible for both linux and windows at the same time. AI was also used to help with the Args function as I have not had any experience with it before. The attached images show the program running on both Linux and Windows. First screenshot shows the automatic dependencies installer in action, followed by images of the new banner and guide text if the user enters wrong api key multiple times."}, {"post_id": 28503, "ts": "2026-07-14T19:58:23Z", "hours": 1.5825, "text": "Devlog 2 Progress Done Its been about the first hour into the project, and I have well planned everything and have started working on execution. I have started with the linux versions (CMD ONLY), because I dont have experience with GUI Apps and compiling to executables. I have started on configuration tool, which asks the user for all required API Keys and creates the config files and sets up the installation. I have also worked on a standard automatic dependency downloader, so it runs its own venv on boot, downloads its dependencies there, and runs normally. I would not be compiling it into an executable, so you can take and run it on linux, and copy paste it and run it on windows without any platform change issues. I also set up python library, “logging”, to provide proper logs of every action, because it would be important for the users if anything goes wrong or they need history of the tool’s actions. I have also added an entire system testing feature (POST) which triggers when the program is turned on. This is to ensure that no issues come while critical server actions are being performed by the software. It also checks if all the configs are built right. Features Added/Worked on Added Logging System Added Self Config tool Added dependency resolver Added a POST Test What new I learnt I learnt to work with logging library I learnt different logging levels I learnt how to read and save data into json and env I learnt to work with venv & auto pip installers I learnt that stardance has a 4000 char limit on devlogs I learnt to make a cool startup animation with ASCII I learnt to make a cool looking UI in terminal for config page AI Declaration AI was used to make a big empty blueprint list of all functions which I have to code, which makes the work easy as it allows me to visualize the functions pending to create and those which are done. AI was used in ASCII Animation’s character generation. The attached image shows the ASCII Animation, and then some pics of the AutoConfig window, asking the user to enter the details to perform setup."}, {"post_id": 28444, "ts": "2026-07-14T18:06:10Z", "hours": 0.4731, "text": "Devlog 1 Project Details 1. The point/scope of this project So, this is going to be a project for all the hosting owners and homelab operators, who have to manually control/edit each server on pterodactyl to do basic actions which is the same to be done on multiple servers. If you dont know, Pterodactyl is a game/server hosting control panel which gives you a good UI to make your stuff easier to control and all.. but it does lack bulk change features, and there arent much addons for it, and addons also dont work well and get deleted everytime we upgrade the panel, which is a mess. 2. My Solution for the problem I would be making a standalone windows app + a linux cmd app which uses pterodactyl API to perform actions. It would provide a very comprehensive UI to specifically allow for bulk actions and add features which arent there in normal pterodactyl. 3. Features of my project After extensive planning and discussion with several other hosting/homelab owners, I have gathered a list of features which everyone require and would use on a regular basis if there was an app for it. So, my app would have the following features: Bulk Suspend/Unsuspend Bulk Delete Selective Purge Backup download Bulk resource change, or Copy 1 server’s resources and paste to multiple servers. Bulk Reinstall Bulk Transfer Settings page for storing api keys and more. Email notifications to notify users for bulk actions if scheduled. [Planned for a later stage, to be released with other matching updates] Make a management tab in which all node’s real specs are shown, and heavy overloading or other parameter of servers are shown. Il take suggestions from UI of Proxmox and Proxmox Datacenter manager as thats a really good UI with a lot of pterodactyl usable features. User management features like Bulk Email, Bulk user delete, Specific User Purge (Like delete those without any server), User Clear (Clear all servers of a user) The complete flagship feature of panel speed booster, which does all required purges and makes panel faster Update monitor, so users can safely and reliably update their wingspan installation and get prompted whenever a new release is put. 4. Who am I/What do I do? I am Brahmtej Singh, a Python Developer, usually working with devops projects like automations and things, so this kinda project is a perfect fit of what I like to do! Im the founder of HostingKarle, I started with a pledge of providing a safe place to my customers. There are a lot LOT of scams out there in IT/Hosting sector, and I wish to change that. I always prioritized customer experience and trust building, and I also support developers by providing Free hosting services to support their development and projects! AI Use in Project and Other Details I am always very clear with AI Use, I believe to use it as a helping tool to navigate through complex logic building and automate repetitive tasks. All my AI use is properly logged and would be attached in every devlog, though I try my best to write what I know by hand. If you ever wish to contribute or to provide feedback on my work, please feel free to conact me on slack, ID: U0AJ2DDJ996 I always write all my devlogs by hand, every single detail is hand written and not passed through any AI tool, not even for grammatical or syntaxial fixing. My devlogs are mainly formatted like this: Introduction to what I did What new I learnt Project Impact / Upcoming Changes AI Use Declaration Attached Photo Description Thankyou for taking interest in my project. The attached image shows a screenshot of my current and future targets, written and planned out. This much text wouldnt fit in the text space, so had to attach a screenshot of the text planning. (First 15 Minutes into creation)"}]...
|
Title: Wingspan for Pterodactyl by @brahmtejsawhne Title: Wingspan for Pterodactyl by @brahmtejsawhney | Stardance
Devlogs:
Devlog 1 Project Details 1. The point/scope of this project So, this is going to be a project for all the hosting owners and homelab operators, who have to manually control/edit each server on pterodactyl to do basic actions which is the same to be done on multiple servers. If you dont know, Pterodactyl is a game/server hosting control panel which gives you a good UI to make your stuff easier to control and all.. but it does lack bulk change features, and there arent much addons for it, and addons also dont work well and get deleted everytime we upgrade the panel, which is a mess. 2. My Solution for the problem I would be making a standalone windows app + a linux cmd app which uses pterodactyl API to perform actions. It would provide a very comprehensive UI to specifically allow for bulk actions and add features which arent there in normal pterodactyl. 3. Features of my project After extensive planning and discussion with several other hosting/homelab owners, I have gathered a list of features which everyone require and would use on a regular basis if there was an app for it. So, my app would have the following features: Bulk Suspend/Unsuspend Bulk Delete Selective Purge Backup download Bulk resource change, or Copy 1 server’s resources and paste to multiple servers. Bulk Reinstall Bulk Transfer Settings page for storing api keys and more. Email notifications to notify users for bulk actions if scheduled. [Planned for a later stage, to be released with other matching updates] Make a management tab in which all node’s real specs are shown, and heavy overloading or other parameter of servers are shown. Il take suggestions from UI of Proxmox and Proxmox Datacenter manager as thats a really good UI with a lot of pterodactyl usable features. User management features like Bulk Email, Bulk user delete, Specific User Purge (Like delete those without any server), User Clear (Clear all servers of a user) The complete flagship feature of panel speed booster, which does all required purges and makes panel faster Update monitor, so users can safely and reliably update their wingspan installation and get prompted whenever a new release is put. 4. Who am I/What do I do? I am Brahmtej Singh, a Python Developer, usually working with devops projects like automations and things, so this kinda project is a perfect fit of what I like to do! Im the founder of HostingKarle, I started with a pledge of providing a safe place to my customers. There are a lot LOT of scams out there in IT/Hosting sector, and I wish to change that. I always prioritized customer experience and trust building, and I also support developers by providing Free hosting services to support their development and projects! AI Use in Project and Other Details I am always very clear with AI Use, I believe to use it as a helping tool to navigate through complex logic building and automate repetitive tasks. All my AI use is properly logged and would be attached in every devlog, though I try my best to write what I know by hand. If you ever wish to contribute or to provide feedback on my work, please feel free to conact me on slack, ID: U0AJ2DDJ996 I always write all my devlogs by hand, every single detail is hand written and not passed through any AI tool, not even for grammatical or syntaxial fixing. My devlogs are mainly formatted like this: Introduction to what I did What new I learnt Project Impact / Upcoming Changes AI Use Declaration Attached Photo Description Thankyou for taking interest in my project. The attached image shows a screenshot of my current and future targets, written and planned out. This much text wouldnt fit in the text space, so had to attach a screenshot of the text planning. (First 15 Minutes into creation)
Devlog 2 Progress Done Its been about the first hour into the project, and I have well planned everything and have started working on execution. I have started with the linux versions (CMD ONLY), because I dont have experience with GUI Apps and compiling to executables. I have started on configuration tool, which asks the user for all required API Keys and creates the config files and sets up the installation. I have also worked on a standard automatic dependency downloader, so it runs its own venv on boot, downloads its dependencies there, and runs normally. I would not be compiling it into an executable, so you can take and run it on linux, and copy paste it and run it on windows without any platform change issues. I also set up python library, “logging”, to provide proper logs of every action, because it would be important for the users if anything goes wrong or they need history of the tool’s actions. I have also added an entire system testing feature (POST) which triggers when the program is turned on. This is to ensure that no issues come while critical server actions are being performed by the software. It also checks if all the configs are built right. Features Added/Worked on Added Logging System Added Self Config tool Added dependency resolver Added a POST Test What new I learnt I learnt to work with logging library I learnt different logging levels I learnt how to read and save data into json and env I learnt to work with venv & auto pip installers I learnt that stardance has a 4000 char limit on devlogs I learnt to make a cool startup animation with ASCII I learnt to make a cool looking UI in terminal for config page AI Declaration AI was used to make a big empty blueprint list of all functions which I have to code, which makes the work easy as it allows me to visualize the functions pending to create and those which are done. AI was used in ASCII Animation’s character generation. The attached image shows the ASCII Animation, and then some pics of the AutoConfig window, asking the user to enter the details to perform setup.
Devlog 3 Progress Done Its the 3rd hour into the project, and I have worked on adding args feature (specifically for linux users) and have worked on the project’s banner and interactive setup menu. I have also added verification in the setup fields to ensure that the user fills in correct information, and even guides the user if wrong keys are entered after 2 tries. Alongside with it, I added colors and made a cool ASCII banner. I also added the system to make venv automatically on first boot (supported on both linux/windows) for those who are running the code directly uncompiled. Features Added/Worked on Added Colorful ASCII Banner [Check Attached Image] Added field verification for setup- Added Args support, Eg. wingspan setup Improved POST Added Auto Venv and Dependency Installer What new I learnt I learnt to work with ASCII Color Codes I learnt to make args on python I learnt how to work with Venv I learnt to work with Terminal Commands from python to install dependencies AI Declaration AI was used for this devlog period for generating the automatic venv and dependencies installer, and making it compatible for both linux and windows at the same time. AI was also used to help with the Args function as I have not had any experience with it before. The attached images show the program running on both Linux and Windows. First screenshot shows the automatic dependencies installer in action, followed by images of the new banner and guide text if the user enters wrong api key multiple times.
Devlog 4 Progress Done Its about the 6th hour into the project, I have worked on making a terminal UI on which you can click up and down arrows and space button to select servers from a list to do actions. I did not work on actual API yet, thats kept for the last, currently I am working on data sorting and filter functions and more. I also made a cool banner for the project! Sorry for the late devlog, took a lot of time debugging and learning this one. Features Added/Worked on Made a cool image banner on canva [No AI] Worked on filtering functions Worked on a better terminal UI with curses Made HomePage What new I learnt I learnt Graphic Design with Canva I learnt to work with Curses to make terminal UI I learnt to capture button clicks on terminal for functions AI Declaration Close to None AI was used for this devlog. I used AI to understand how the curses library works and how to make it perform actions on button clicks. Also, the tech-pterodactyl symbol on the banner was made with AI as I couldnt find a similar icon on the internet. The attached images show the new banner, followed by the homepage and terminal selector UI demo.
Devlog 5 Progress Done Its about the 8th hour into the project, Since around the past 1 hour, I have been reading and understanding the entire pterodactyl API. Learning everything from sending requests to sorting data according to needs. Not much progress was done on the main project, though I did a lot of testing in temp files and had a lot of learning. What new I learnt I learnt to use RestJS API system of Pterodactyl I learnt to use Requests in Python I learnt to capture data and filter/manipulate it from APIs I learnt to manage rate limits and error codes Sources Pterodactyl API Docs: https://pterodactyl-api-docs.netvpx.com/docs/intro AI Declaration No AI was used for the period of this devlog. Most of the work was only done for understanding and learning purposes which was done in temp files which is essential for the project’s development. The attached images show the pterodactyl AI docs which I am reading and testing.
Devlog 6 Progress Done Its the 11th hour into the project and the progress is booming! I have started working on the interactive menus of the program. I have also started work on the first function, which is “Search and Info”, in which you can select parameters to search from, and it performs bulk search for you, which you can export to a file, or use in the program internally to trigger actions, or get detailed info about. I have also added terminal ui from curses in this, for the parameter selector, and it looks really good! I also worked on algorithms which convert data from pterodactyl to a usable format for mass bulk searching. I am making it in a way that some of the load is shared on the pterodactyl server side for filtering, and the rest is done on machine running this program, so I can minimize the rate limiting and divide load among both the machines for bulk processing and improve speed. For example, basic filter arguments are run on pterodactyl server’s side (Handled built in by pterodactyl), whereas advanced parameter searches are done on user side as generally user’s own system has more threads and is much better than the pterodactyl webserver. Features Added/Worked on Made menus and sections for first function Worked on algorithms to convert api responses to filterable data Worked on UI by adding curses based parameter selector Made first function, Search and Info What new I learnt I learnt to work with massive data and make algorithms to convert to usable data I learnt to make my first usable intractable terminal UI from curses I learnt to divide operations and perform load balancing for such bulk data AI Declaration Close to None AI was used for this devlog. All the algorithms which were made, where made completely by hand. AI was used for research purposes for curses as its a new field for me. All code blocks where AI has been used are marked in source code! The attached images show the home page, followed by new menus, along with the parameter selector and more…
Devlog 7 Progress Done Im into the 12th hour of the project, and I have done a lot of progress on the first function, which is search and info. I have worked on the parameter search option which is an extremely bulky work as im making it compatible with future upgrades and any extra addons that the user may have which cause changes in the API, I’m adding dynamic automatic support for new fields too for search, while taking all inputs and performing operations in the terminal. I am completely AVOIDING AI for this devlog, and focusing on complete self improvement and understanding of such deeply nested code structures. This is a partial devlog, meaning it doesnt mark a completion of a feature. AI Declaration Close to None AI was used for this devlog. Everything was done by hand for self learning and improvement. The attached images show the home page, followed by the new Search from Parameters Mode…
Devlog 8 Progress Done Im done with Search and Info function’s basics. Only export options and other advanced options are left to be created. This is a really little 15 minute devlog to mark the achievement of the first actual usable feature in the program, which took me about 11 hours, and this project would be having about 20 of such large functions, making this an extremely detailed and big project. In this devlog, I also want to thank each and every follower of mine, for taking interest in my project and supporting me! Thankyou. AI Declaration Close to None AI was used for this devlog. Everything was done by hand for self learning and improvement. The attached images show the Banner of project.
Devlog 9 Progress Done Im working on the final parts of the first function, that is filtering and exporting. Next I would be moving onto purge manager and related functions which are more useful in real life. Input of the ID parameter was giving vague errors when provided with ranges, It took me a lot of debugging to find the source of the issue, and that was a string was being compared to an int (str<int) in a part of code where I didnt typecast. That is fixed now. AI Declaration Close to None AI was used for this devlog. The attached images show the accepted input of the ID field when put with a range.
Devlog 10 Progress Done Im in the 13th hour of the project, and have completely finished the first feature of Searching and Indexing servers. This feature allows you to search from bulk server lists and filter out servers based on all the parameters. It also works with any extension which you may add in future which adds more parameters in the panel, its universally compatible. Next, I would be working on the Purge function, on which we would be using the Search and Info function, to export a csv list and import it into the purgetool to eliminate servers. Features Added/Worked on Refined menus and controls Added more colors Added support for complete universal API [Explained above] Finished with the first function of the software What new I learnt I learnt to work with APIs I learnt to manage big data I learnt to make really complicated nested loops I learnt to convert Json and Lists from 2D to 1D AI Declaration A little bit of AI was used to automate repetitive tasks to save time in the search and info function, where filter rules had to be created for each datatype separately and code was mostly same as I written by hand. AI was used to just change variable names and fit it for other datatypes. AI was also used for debugging and checking if everything works alright. Wherever AI was used, has an AI marker in the source code. The attached video show the first working function which is filtering servers based on user inputs.
Devlog 11 Progress Done Im in the 14th Hour of the project, and I have worked on the readme. I have written installation process, and scopes of this project. Also, I have added credits as required. All content is human written, no AI used. Features Added/Worked on Added Readme AI Declaration No AI Used for this devlog period The attached video show the preview pics of the readme.
Devlog 12 Progress Done I am now making the Server Info function, which provides all the server information in one very well managed panel. Thanks to my fellow developer @stef [U0823APHVK7], I got to know that most of the pterodactyl API docs out there are AI generated and are mostly inaccurate. The accurate one is: https://pterodactyl-api.redbanana.dev I have also experienced issues with Pterodactyl itself, not working right with parameter based data fetching, Il work more on it as most likely its some my side issue. I am also working on adding some kind of live table display right into the terminal to beautifully display the data from the Server Info function. Features Added/Worked on Finished with Server Search Worked on CSV Export Started work on Server Info Function AI Declaration No AI Used for this devlog period The attached video show the preview pics of the new Server Info function.
Devlog 13 Progress Done I did not do much today as the schedule was really busy, I have done a little bit of debugging and bughunting by testing with different kinds of server eggs and parameters on pterodactyl. I have not found any major issue yet, there were some little issues with server search function where some parameters would not show up, that is fixed. Rest, I also am working on the server info function and the readme. Features Added/Worked on Finished with Server Search Worked on CSV Export Started work on Server Info Function AI Declaration No AI Used for this devlog period The attached photos show the new updates to the readme and docs.
Devlog 14 Progress Done I know this is a very delayed devlog, I had my exams mid way. I’m into the 20th hour of the project, most of the stuff is made. API System is ready, most of the code which would be shared across multiple functions is ready. First function, of Bulk Search and server lookup is also complete. Server lookup function has a really cool UI. Alongside with that, I have also added export option to the Bulk Server Search, you can use the exported file on other functions which take actions on server. Features Added/Worked on Completed Bulk Search and Server Lookup Added server list export Added Shipwrights Docs (Readme for shipwrights) Worked on fixing bugs and README What new I learnt I learnt to work with CSV files I learnt to spoof responses to provide hardcoded outputs (For shipwrights testing) I learnt how to read and save data into json and env I learnt to add images into my Readme AI Declaration A little bit AI was used in CSV saving mechanics, so its saved in a way so could be read back easily for processing later. Server Lookup’s UI was heavily created with help of AI, as I was not able to achieve that high information density without use of AI. Rest, updates in README and SHIPWRIGHTS.md were all done by hand with 0% AI. The attached image shows the new Server Lookup UI, new readme with banner and terminal header, shipwrights file, csv file output.
Changelog Repo Created on Git, Code Uploaded. V1: Added: Server & Info Fn. Welcome to wingspan folks! <3
Devlog 16 Progress Done The project is still on its reviewing stage, in the meantime, I have worked on releasing the executable release for both windows and linux. The executables are internally dynamic, so it updates to the latest wingspan version on every boot. Alongside, I have also worked on a lot of bugfixes, added more detailed logging, Autoboot after Setup and more. I have also worked on the purge function, specifically on the server purge feature. I have completed the export function and import function for the server lists. So server lists could be imported to action functions. I have also worked on reducing the boot time for linux, and on a fresh install, its as little as 5 seconds for the complete install and setup. I’ll be releasing more things after the ship gets approved! Features Added/Worked on Enhanced Logging System Added Release Executables/Binaries Added Auto Updater Added Importer Function for exported server-lists Fixed bugs and slight performance enhancement for windows Massive performance enhancement for linux What new I learnt I learnt to make a formal logging system I learnt to create binaries of python I learnt how to export and import and edit csv I learnt to optimize code on linux I learnt to make Auto Updaters and Version Checkers What I would be working on Completing server purge function Improving performance for windows systems Adding verification of exports while importing them Warnings before destructive action AI Declaration No AI was used in code in the duration of this devlog. AI was used in helping me with creating the executables from the code. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Release Page of the project, Purge Window Screenshots and Export File Content Screenshots.
Devlog 17 Show and Tell #1 WINNER Project! 🏆 Progress Done Ship Approved! Yay! Also, Show and Tell Winner! So, during the span of this devlog, I have worked on creating release files for this project, in a way that they do not have to be updated everr! Also, I have worked on the Purge Function, and have completed the server list import, and have made major changes in server list export function, which now exports minimally required data only for security reasons. Also, I have made quite a lot of confirmations that the person has to fill in order for the servers to actually get deleted, which is a good practice so a person doesnt anciently delete their entire pterodactyl. Also, I have worked on advanced logging in the import system and a very smart directory checker. Also, exporting now adds the panel’s URL on top of the export file, so a wingspan session linked to another panel does not perform critical actions on wrong servers. It properly verifies the import file and gives a clear warning if needed. Features Added/Worked on Export Function Major Changes New Import Function Improved logging Purge Function Increased security and confirmations before taking critical actions. What new I learnt I learnt to export files I learnt to import files I learnt security and integrity tactics to prevent unwanted destruction I learnt to do better logging What I would be working on Completing server purge function Starting work on user purge function AI Declaration No AI was used in code in the duration of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached file shows and older video I recorded of me using the project.
Devlog 18 Progress Done Purge feature is now functional. Server purges are working as expected. I have added 4 purge methods. Parameters are Forced/Unforced, and Verified and Unverified.So, FV,FU,UV,UU. When you choose unforced method, it would ensure a clean deletion, and ensure the entire data is wiped. On a forced delete, it would delete it from frontend, and only attempt to clean it entirely. Force method is useful to delete servers whose nodes have been discontinued, or conditions where unforced wouldnt work. Verified feature ensures that the purge process goes as close to the expected outcome as possible, and if anything is detected which shouldnt be so, wingspan would prompt you there, so you can take manual action right there on the spot while it purges. Unverified means that wingspan would try its best to delete all the servers given in the importlist and would not prompt the user in case of discrepancies. Features Added/Worked on Import Verification Server Name Live Verification Completed Beta Purge Function Updated Menu to allow Purge Function Wingspan now needs an Admin API key with Full Perms (Readonly no longer works) What I would be working on Bugchecking all the features I made Attempting to delete some servers in massive quantities. Starting work on User Purge Function Do changes in README.md for the new purge function documentation. Find a good reliable Pterodactyl API Docs Website. AI Declaration No AI was used in code in the duration of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Graphical UI of the Purge Function along with the questions it asks.
Devlog 19 Show and Tell #1 WINNER Project! 🏆 Progress Done Purge function has been completely created. I have worked on API Request Error Catching in duration of this devlog. I have integrated all the standard practices and error catching which is required, and now the program displays the error and a solution to fix it. Also, it tracks if there are any errors due to wingspan itself, and provides resolution! Great Stuff! I also started work on User Purge Function, which i’ll release in the ship after shipping Server Purge. There was a bug in the release file, which prevented auto update in windows. Fixed that. Features Added/Worked on Better API Requests to Pterodactyl Rate Limit detector and queue Error Catching and Resolution Server Purge Function Completed Started work on User Purge What new I learnt I learnt to work with industry standard error catching I learnt to make better API systems I learnt to work with queues and rate limiters I learnt to use DELETE Protocol What I would be working on Completing Documentation till here Shipping till Server Purge AI Declaration Claude was used to find out bug in release file only. No AI was used in code during the span of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Release Page of the project, project homepage and some lovely previous votes screenshots.
ps: not an official devlog, just an update Show and Tell + Super Star This was another great show and tell, and OMG SUPER STAR! Thanks @Lazyllama ❤️ Ty guys, rly grateful!! Image shows me submitting to Show and Tell and 2nd Image showing my Super Star!
Ships:
Welcome to WingSpan, A project to bulk manage your self hosted hardware on pterodactyl. Easily search through servers, get detailed information, export lists based on precise filtering and more! It is made for people like me, who manage hundreds of servers daily, and need to perform bulk actions on them. Its posted on frictionless mission because it would make my life really easy as it automates a lot of my work and would save me a LOT of clicks! cant wait for you to try it out! <3
Hello! If you are new here, welcome! This is my flagship project called Wingspan, It’s used by system administrators and infrastructure managers to manage their virtual servers in bulk rather than one by one. This project works in the terminal with AMAZING Terminal UI! This is my second ship. I have worked on making the Server Purge Function, to easily delete servers in large quantities. In my previous ships, I worked on making the basics of the code and functions to index and search the database. I have received extremely positive comments for this project, and i’m really proud of making it! Do star it on github if you like this one!...
|
1792853761.907101
|
1792940161.907101
|
|
35225
|
NostalgiaOS by @elizabeth | Stardance
|
elizabeth
|
2
|
3.0
|
7
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-20T19:29:47Z", "hours": 1.0, "multiplier": 9.26, "payout": 7, "blessing": "neutral", "text": "So i first submitted this to webos1 so for web os 2 i added a light/dark mode toggle a new app and customizable windows", "repo": "https://github.com/Elizadev41/My-Web-0S", "demo": "https://my-web-0-s.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-23T20:29:01Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "NostalgiaOS is a website that works like a computer operating system. It has a desktop, apps, wallpapers, and features inspired by the internet culture of the 2016 era. I wanted to make something that feels nostalgic while still being interactive and fun to use.", "repo": "https://github.com/Elizadev41/My-Web-0S", "demo": "https://my-web-0-s.vercel.app/"}]...
|
[{"post_id": 51232, "ts": "202 [{"post_id": 51232, "ts": "2026-08-20T19:28:31Z", "hours": 0.7117, "text": "i added customizable windows a status feed app and a light/dark mode toggle"}, {"post_id": 33678, "ts": "2026-07-23T19:57:17Z", "hours": 1.8172, "text": "Finished building the main applications for NostalgiaOS!Added:Browser, Files, Photos, Music, Messages, Calendar, Notes, Paint, Settings, Trash, and Nostalgia Snap.Interactive window system with minimize, fullscreen, and app controls.Local storage for saving notes, messages, wallpapers, and drawings.Camera filters and face effects using MediaPipe."}, {"post_id": 28645, "ts": "2026-07-15T00:46:54Z", "hours": 0.6581, "text": "SO i decided to make another webos (i did one for flavortown)so rather than doing sm basic i decided to make a 2016 themed webOS (ik it doesnt look 2016 yet but trust the process😭😭😭) so far ive added icons and im still finding wallpapers on pinterest haha but yeah i made this cause like start of the year evb was like 2026 is the new 2016 so i was like yk what im so bored so lemme make a 2016 themed webOS"}]...
|
Title: NostalgiaOS by @elizabeth | Stardance
Devl Title: NostalgiaOS by @elizabeth | Stardance
Devlogs:
SO i decided to make another webos (i did one for flavortown)so rather than doing sm basic i decided to make a 2016 themed webOS (ik it doesnt look 2016 yet but trust the process😭😭😭) so far ive added icons and im still finding wallpapers on pinterest haha but yeah i made this cause like start of the year evb was like 2026 is the new 2016 so i was like yk what im so bored so lemme make a 2016 themed webOS
Finished building the main applications for NostalgiaOS!Added:Browser, Files, Photos, Music, Messages, Calendar, Notes, Paint, Settings, Trash, and Nostalgia Snap.Interactive window system with minimize, fullscreen, and app controls.Local storage for saving notes, messages, wallpapers, and drawings.Camera filters and face effects using MediaPipe.
i added customizable windows a status feed app and a light/dark mode toggle
Ships:
NostalgiaOS is a website that works like a computer operating system. It has a desktop, apps, wallpapers, and features inspired by the internet culture of the 2016 era. I wanted to make something that feels nostalgic while still being interactive and fun to use.
So i first submitted this to webos1 so for web os 2 i added a light/dark mode toggle a new app and customizable windows...
|
1792842982.68365
|
1792929382.68365
|
|
35239
|
CORES Runtime by @ravi10 | Stardance
|
ravi10
|
2
|
61.0
|
58
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-31T19:08:41Z", "hours": 33.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "CORES Runtime is an open-source cognitive runtime for autonomous robots. Instead of controlling robot hardware directly, it manages the software systems that sit between perception, planning, scheduling, memory, and execution. Its goal is to help robots decide what to run, when to run it, and how to manage limited compute and energy while remaining deterministic and predictable. This ship focuses on a major redesign of the memory subsystem. I replaced the previous learning architecture with a new memory pipeline built around Episodic Memory, Semantic Memory, and a Logger that compresses experiences into long-term knowledge. During development, I discovered and fixed a consolidation bug through the demo itself, added regression tests, benchmarked the full compression pipeline, and documented a known scaling limitation for future optimization.", "repo": "https://github.com/Cores-Runtime/cores", "demo": "https://cores-rust.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-16T09:43:26Z", "hours": 8.0, "multiplier": 7.72, "payout": 58, "blessing": "neutral", "text": "CORES is a research project exploring how autonomous robots can schedule cognition instead of simply executing tasks. This update introduces the first public version of the CORES experience. I built and deployed a homepage that explains the runtime architecture, scheduling, benchmark overview, and cognitive module system. A major focus was making a complex robotics runtime understandable through clean visual design rather than long technical documentation. The next milestone is an interactive runtime simulator where visitors will be able to inject hazards, change mission conditions, and watch the scheduler reprioritize cognitive modules in real time. Exact visualizations and benchmark charts will be added. I’d love feedback on: Is the core idea easy to understand? Does the homepage clearly communicate the purpose of CORES? What sections are confusing or missing?", "repo": "https://github.com/Cores-Runtime/cores", "demo": "https://cores-rust.vercel.app/"}]...
|
[{"post_id": 40760, "ts": "202 [{"post_id": 40760, "ts": "2026-08-04T14:30:40Z", "hours": 10.0, "text": "Devlog #10 Meet the Mission Manager “What should the robot work on right now?” Planning already knows how to achieve a goal, but it doesn’t decide which goal is the most important. The Mission Manager sits one level above Planning, keeps track of every mission, chooses the active goal, and hands only that goal to the planner. Spent most of the day building the Mission Manager. The idea sounds simple: a mission is a list of goals, the manager picks the active one, hands it to Planning, and waits for the result. The details were anything but simple. I started with the mission lifecycle. Every mission begins in NEW , becomes READY , then ACTIVE , and eventually reaches a terminal state: COMPLETED , FAILED , or CANCELLED . A mission can also be PAUSED and resumed later. The transition rules are strict. You can’t jump from CANCELLED back to ACTIVE , and you can’t skip directly from NEW to COMPLETED . Every transition has to make sense. I spent much longer than I expected getting the state diagram and all the transitions right. Preemption was probably the most interesting part. When a higher-priority mission arrives, the current one moves back to READY , not PAUSED . That distinction took a while to figure out. PAUSED means someone intentionally stopped the mission. Preemption means the system decided something more important needs attention first. Different reasons, different states. Goals also execute one at a time. A goal can depend on another goal, so a task like Drop Package won’t begin until Pick Package has finished. Goal completion works in two independent ways. You can either call complete_goal() directly, or use a constraint evaluator that checks the robot’s state automatically. Neither depends on the other, and a goal never completes simply because it has no constraints. That felt like the safest design. A bug the dashboard exposed Near the end, I ran into a strange bug. As soon as a mission finished, the manager immediately wrote \"idle\" into the robot state, clearing the mission ID and progress. If you were watching the dashboard, the mission simply disappeared the moment it completed. The fix was straightforward: keep the final mission state visible until another mission becomes active. Now the homepage trace finishes at 100% Complete instead of dropping back to idle immediately. It was a small issue, but it made the runtime feel much more polished. Integration The cleanest part of this phase was the integration. Nothing else needed to change. The Scheduler still schedules. The Planner still plans. The Mission Manager simply runs earlier in the runtime cycle, selects the active goal, and passes it to Planning. Even the original way of giving a mission directly to the Runtime still works, so existing code remains compatible. Some Cleanups The rest of the session went into polishing the project. Updated documentation and runtime diagrams Refreshed test and strategy counts Replaced the remaining banned terminology Renamed the HTN primitive class across seven files for consistency Fixed benchmark test collection by adding import fallbacks for script execution Nothing particularly exciting, but it leaves the project in a much healthier state. I think this phase is finally complete."}, {"post_id": 39637, "ts": "2026-08-02T19:20:21Z", "hours": 10.0, "text": "Devlog #9 Meet the Planning Module The Planning Module answers one simple question: “What should we do next?” It looks at the goal and the current state, proposes candidate plans, and picks the best one. The module has one interface and five planners. You hand it a mission, which is a collection of goals. Each goal is something the robot wants to be true. Every planner produces candidate plans with a confidence, estimated cost, duration, and utility score. The module returns all candidates and the one it selects as the best. The five planners are: GoalPlanner searches forward using action pre-conditions and effects. HTNPlanner breaks high-level tasks into smaller actions using authored methods. UtilityPlanner scores candidates and picks the highest. ReactivePlanner reacts immediately to simple conditions. BehaviorTreePlanner executes authored behavior trees. All of them implement the same PlannerStrategy interface, so they can be swapped without changing the rest of the runtime. The planner learned to adapt its own plans Before today, whenever something changed during a mission, the planner threw away the entire plan and started again. Now it walks through the existing plan step by step. If the beginning of the plan is still valid, it keeps it. As soon as it reaches a step that can no longer be completed, it rebuilds only the remaining part. This means the robot no longer repeats work it has already finished. Both the Goal Planner and HTN Planner now support this. Every repaired plan also records where the original plan became invalid. The Runtime handles this automatically. If the environment changes, it first tries to update the existing plan. Only if that fails does it generate a completely new one. The planner learned to notice change The next challenge was deciding when to update a plan. The solution was a planning snapshot: a small summary of the robot and world containing only the information planning actually cares about. Objects, flags, payloads, and sensor-health keys are sorted. Battery is grouped into critical , low , medium , or high instead of using the exact percentage. Temperatures and positions are rounded, while noisy values like timestamps and raw pose are ignored. This keeps the snapshot deterministic, so identical worlds always produce identical snapshots and unnecessary replanning is avoided. The planner learned from experience The second big change was teaching the planner to use previous experiences. Before today, it only looked at the current situation. Now it asks Memory for a summary of previous successes and failures before making a decision. A new wrapper called MemoryAwarePlanner works with any existing planner. It lets the original planner create a plan, then adjusts the choices based on previous outcomes. Plans that failed before become less attractive, while successful ones get a small boost. The selected plan is stored back into Memory so future missions can learn from it as well. If there is no previous experience, the planner behaves exactly as it did before. The demo ties everything together. First, Door A becomes blocked, so the planner updates the existing plan and switches to Door B instead of starting over. Then, on the next run, Memory remembers that Door A failed twice while Door B succeeded once, so the planner chooses Door B from the beginning."}, {"post_id": 38154, "ts": "2026-07-31T12:17:53Z", "hours": 11.0, "text": "Devlog #8 The demo found a bug before I did. I had that type of day where, you think every feature is working correctly and when you test, you find out its not. The standalone Learning subsystem was deleted a while back. In its place I added the Logger, which uses a compression algorithm living inside Memory. SPSCA, the Semantic Pointer State Compression Algorithm, moved out of the memory strategies and into the Logger where it belonged. The new module: logger it only had one job and that was to summarize long memories and log it and somehow it still failed in demo. 😑 Then demo_memory.py ended with a summary that read: Episodic records: 7 | Semantic narratives: 0 If you watched that demo as an outsider, you would walk away thinking the Logger was a sticker on the box. It looked broken, because it was idle. The records I stored were all too important to archive, but the default trigger needed 50 new records to even consider firing. So I just re-wrote the pipeline and tested it. The bug was just one line Then the demo did something embarrassing. It caught a real bug. The source IDs in the second narrative overlapped with the first. Records that had already been summarized were showing up to be summarized again. Imagine a robot checking the same doorway every patrol because it never recorded that it had already inspected the doorway. The culprit was mark_consolidated checker. It was asked to flip a batch of records to CONSOLIDATED, and it did the polite thing of fetching one record per id. Except every single fetch returned the same record. The top one. So one record got filed, and the other ten stayed on the desk, waiting to be processed forever. A one-line fix and a regression test later, no record is ever re-compressed. Caught the bug by reading my own demo output, which is the cheapest way to find a bug on earth. (≧▽≦) The benchmark that revealed the hidden cost Then I measured the whole pipeline. Not the Logger in isolation, the full journey. Store, archive, trigger, compress, file into semantic memory. The numbers looked fine and then slowly stopped being fine:- 100 records: about 0.66 ms each 1000 records: about 0.83 ms each 5000 records: about 1.77 ms each Every cycle, archiving and consolidation scan the whole store to find what changed. That is a classic hidden O(n^2), the kind that is invisible at demo size and painful at robot lifetime size. It is fine for now. It is written down. It will be fixed before anyone deploys a robot that lives for a year. 😓 The interesting part wasn’t fixing the bug. It was realizing that a good demo isn’t just there to impress people. It’s another test. Unlike unit tests, it exercises the system the way a user would, and today it caught a bug that hundreds of automated tests never did. Sometimes the fastest debugger is simply watching your own software run."}, {"post_id": 36393, "ts": "2026-07-28T13:56:17Z", "hours": 10.0, "text": "Devlog #7 Today’s session was dedicated to a very big architectural refactor in the project. The goal was to simplify the memory and reasoning pipeline by redesigning how memory is represented and consolidated while preserving compatibility with the existing runtime. Session Goals Redesigning the memory architecture Removing old unnecessary learning subsystem Introducing Logger Migrating SPSCA Preserving runtime compatibility Keeping full test suite passing Architecture Design I went back to the basics and reviewed the entire architecture. I wanted to make it cleaner by identifying overlapping responsibilities between Memory and Learning. It was very time consuming as there were too many responsibilities and modules to simplify and distinguish here. This resulted in a new architecture: EpisodicStore SemanticStore Logger Since I believe learning will be taken care of in future updates. Implementation Implemented: Memory redesign Logger subsystem Trigger policies SPSCA migration Runtime integration Memory now internally composes Episodic Memory, Semantic Memory, and Logger while exposing a single interface to the runtime. Refactoring Performed a full project-wide migration: replaced string record types with enums updated runtime integration updated imports removed old unnecessary learning components updated public exports Testing & Validation Refactored the testing suite: New module integration tests SPSCA tests Trigger policy tests Updated memory tests Removed old unnecessary tests Final result: 590 / 590 tests passing Lint clean I was happy that the refactor didn’t break anything! (^///^) Documentation Updated: Memory documentation Benchmarks Demo programs Outcome The runtime now has a significantly cleaner architecture: State Estimation → Memory Episodic Semantic Logger → Planning → Scheduler → Execution This refactor was very important as it redefined the whole runtime(base) on which the whole project was built on. This will help to build future phases, secondly dividing memory types was one of the best decisions."}, {"post_id": 33975, "ts": "2026-07-24T10:58:42Z", "hours": 3.0, "text": "Devlog #6 👋 I just wanted to add a way for robot to effectively store and fetch its memory. I expected this phase to be fairly straightforward. The runtime already had State Estimation, Planning and Scheduling. Memory sounded like another subsystem to plug into the pipeline, expose a few interfaces and move on. It didn’t quite go that way. I started with what seemed like the obvious design: A common memory interface with multiple interchangeable strategies. Instead of committing to a single implementation, I built: FIFO Time Decay Priority Episodic SPSCA behind the same abstraction. I knew I’d want to compare different approaches later, so making them interchangeable from the beginning felt like the right decision. Most of the implementation went smoothly 🔥. Then I reached Sparse Principal Component Analysis (SPSCA). Unlike the other strategies, SPSCA wasn’t just storing records. It was trying to represent them. My first implementation followed the algorithm closely. Every piece of content was recursively encoded using semantic pointer operations before being stored. At the time, I was pretty happy with it. Then I ran the benchmarks. The larger scenarios became painfully slow. Some didn’t even finish. I was upset that this whole work and time for nothing and just ruining the project? :-( At this point, I feel like giving up on this and do the next thing or just implement this in the simplest way possible. I actually started making the next phase idea and then while doing that, suddenly out of nowhere, I got an idea about how to find the exact cause of failure 🥹. So, I just went to see that was my hypothesis was correct about the error. I spent a whole evening looking for small optimizations. Once I did, I found the issue with it!. The encoding stage itself had become the bottleneck. That forced me to see the bigger picture of what’s happening during that stage. Instead of trying to optimize the existing implementation, I redesigned the encoding pipeline completely. Memory content is now serialized into a deterministic representation and converted into fixed-length vectors using SHA-256 before participating in similarity operations. The semantic pointer operations are still implemented, but they’re no longer part of every storage operation. That one decision simplified the whole implementation very much. Watching the benchmarks finally finish without timing out was a huge relief. 😭 With the implementation stable again, I turned my attention to testing. I added benchmarks for insertion, retrieval latency, sustained memory growth and strategy comparisons, along with a much larger test suite covering storage, retrieval, forgetting behaviour, vector operations and runtime integration. By the end of the phase, the runtime could finally retain experiences across execution cycles. But, stopped myself from immediately moving on to the next feature as there were still a few loose ends I wanted to clean up before building anything on top of Memory. Nothing in the runtime actually depends on memory yet. Planning doesn’t query it, scheduling doesn’t use it, and no module learns from previous experience. I considered pushing further, but decided against it. Changing the foundation becomes much harder once other components start depending on it. As a small side quest during this phase, I also redesigned the project homepage. Hopefully it finally looks the way I originally imagined it. For now, memory exists for one reason: to give the runtime a place to store or fetch it in a very efficient way."}, {"post_id": 31622, "ts": "2026-07-20T05:20:32Z", "hours": 4.0, "text": "Devlog #5 I thought it would be an interesting day today, as I was going to add something important that will help a robot perceive and predict the world. Instead, I spent most of my time reading research papers. At first I thought I could just implement a World Model and move on. After reading more robotics papers, I realised everyone seems to solve the problem differently. Some approaches use occupancy grids. Some track objects. Some build semantic maps. Some focus almost entirely on probabilistic state estimation. I couldn’t find a single approach that worked well across every scenario. That changed my view of how I wanted to build this part of CORES. Instead of picking one approach that works only in one scenario, I started implementing multiple approaches instead of one. The plan Implement them. Benchmark them. See where each one performs well. Let the results decide which one should become the default. One thing I realised While doing this, I also realised that calling everything a “World Model” was a bit misleading. The runtime isn’t trying to store the world. It’s trying to estimate what the world currently looks like based on observations. That made “State Estimation” feel like a much better name for the implementation. The architecture didn’t really change. Only the implementation became clearer. It was mostly about changing how I think about this part of the project. I think spending a day reading papers and redesigning things will save me weeks of rewriting later. I’ve mentioned this before, but I think it’s important to build the clearest picture possible of a feature before implementing it. About the papers Just to be clear, the papers and images below are existing robotics research. I’m not claiming them as my own. I’m studying different approaches before deciding how to implement this part of CORES. Progress today Surveyed different robotics approaches Planned multiple State Estimation strategies Started implementing competing approaches Added benchmark framework Wrote more tests Refactored the architecture Renamed the implementation to State Estimation"}, {"post_id": 30532, "ts": "2026-07-18T05:46:20Z", "hours": 3.0, "text": "Devlog #4 Today was a difficult day as i was working on too many things but i tried to simulate what i have implemented till now. It was all about making it easier to understand. Until now I had graphs, benchmark results and logs. They were useful for me, but if someone else looked at them, they probably wouldn’t understand why the runtime made a particular decision. That made me think. If a robot suddenly stops or changes its plan, how do I show why that happened instead of just showing numbers? So today I spent most of my time working on the replay system. Building a mission To test everything, I created a simple Mars mission. The rover starts driving normally. Halfway through the mission a rockslide blocks the path. Instead of continuing, the runtime reacts. The rover stops. Safety takes priority. Navigation calculates another path. Then the mission continues. Watching that happen felt much better than looking at benchmark graphs. For the first time it actually felt like I was watching the runtime make decisions. I was happy at this point that all this work actually getting showed in a sim (┬┬﹏┬┬) Making it easier to understand I also spent time improving the replay itself. The rover now has moving wheels, suspension, antenna, brake lights, warning lights and dust effects. I also added different camera angles to make it easier to follow what is happening. One feature I enjoyed building was the cognition timeline. Instead of showing every module sitting there doing nothing, I can now see when modules become active, when they pause and when another module takes over. That made the scheduler much easier to understand, while replaying a mission. One thing I realised The most difficult part was finding a simple way to show what the runtime was thinking. Trust me it was difficult, putting everything into a presentable demo, Trying to fit weeks of work into a small demo meant deciding what to show and what to hide. I had to remove a lot of unnecessary details while still making it clear how the runtime actually works. I think that’s something I’ll keep improving as the project grows. What’s next Right now the replay still uses temporary modules. The next step is replacing them with actual runtime components like Perception, Planning, Navigation, State Estimation and Safety Monitor. After that I’ll connect the replay directly to the Python runtime so every event comes from the real scheduler instead of prerecorded data. Progress today Built the first replay system Added a Mars mission Added dynamic hazards Added cinematic camera modes Added rover animations Added cognition timeline Improved replay visualisation The replay is still pretty simple, but it finally feels like the project is becoming something people can interact with instead of just reading about. I finally achieved something what i wanted to when i started the project, a simulation that is demoable. It’s still far from finished, but seeing the runtime make decisions inside a simulation feels like a huge milestone for me."}, {"post_id": 29382, "ts": "2026-07-16T09:35:41Z", "hours": 3.0, "text": "Devlog #3 hmm, So when i started the project i thought i would build an actual simulation where i could show everyone how it works, its still far from that. So i focused on doing that, I took a break from working on the runtime itself and started building the website. Until now, everything was happening inside the codebase. The runtime was working, benchmarks were running, and tests were passing, but if someone visited the repository they still wouldn’t understand what CORES actually does. I just wanted it to explain the project. Building the homepage I started building the first version of the website using Next.js. Most of the time today went into trying different layouts and figuring out how to present the project in a simple way. The homepage now has: Hero section Navigation Runtime statistics Benchmark summary cards Cognitive architecture visualization Responsive layout One sentence stayed with me while building the page: The project should focus on making robots think better in emergency situations and have actual knowlege of their resources and their environment. I think it explains the project much better than a long paragraph. Designing to match my thinking After changing the layout a few times, I removed most of the unnecessary elements and kept the design much simpler. I’d rather have a clean page that explains the project than something flashy that distracts from it. Deployment Getting the website online wasn’t completely straightforward. Since the repository contains both the Python runtime and the Next.js frontend, I had to configure Vercel to build only the frontend. A couple of module import issues also showed up during deployment. After fixing those, the website finally deployed successfully. Thinking about the project differently While working on the homepage, I realised something. The website shouldn’t just tell people what CORES is. It should help them understand it. Instead of reading pages of documentation, I want someone to interact with the runtime and see how scheduling decisions change under different situations. That’s probably where I’ll spend most of my time next. Testing I also added around 80 more tests while working on the project. The runtime is getting bigger every day, so I’d rather spend extra time writing tests now than spend hours debugging later. End of the day Today wasn’t about adding another algorithm. It was about making the project easier to understand. The runtime is only useful if people can understand what it’s trying to do, and I think the homepage is a good first step toward that. Progress today Built the first version of the CORES homepage Added runtime overview and benchmark cards Added cognitive architecture visualization Simplified the website design Deployed the frontend on Vercel Fixed deployment and module import issues Added around 80 new tests Tomorrow I’ll start working on the simulator so visitors can interact with the runtime instead of only reading about it."}, {"post_id": 28872, "ts": "2026-07-15T13:19:25Z", "hours": 3.0, "text": "Devlog #2 Welcome to my another devlog!! Today was all about the scheduler. Yesterday I finished a greedy scheduler, but I wasn’t convinced it was the best option. So today I implemented an exact 0/1 Knapsack scheduler expecting it to perform much better. After running benchmarks, it honestly wasn’t what I expected. Most of the time both schedulers produced almost the same schedule. For a while I thought I had implemented something incorrectly, so I kept checking the code and rerunning the benchmarks. Turns out the implementation wasn’t the problem. The greedy scheduler was already finding the optimal solution in most of the scenarios I generated. The only noticeable differences appeared when resources became really limited. That’s where I found something that bothered me. During a simulated sensor failure, the Knapsack scheduler decided to stop localization because it increased the optimization score. From a mathematical point of view, that decision was correct. From a robotics point of view, it was terrible. A robot shouldn’t sacrifice safety just because it saves a little more battery. That’s when I stopped thinking about improving the algorithm itself and started thinking about what I was actually asking it to optimize. Instead of using one objective function, I switched to a lexicographic approach. Now scheduling decisions happen in this order: Safety Mission progress Energy Execution time This means lower priorities can never override higher ones. While changing the scheduler, I also realised I had been treating every module exactly the same. That didn’t make much sense. A battery monitor shouldn’t be treated the same way as an exploration module. So I divided modules into three groups. Mandatory Safety Critical Mission Those groups are now used directly by the scheduler. I also added a module dependency graph so relationships between modules can be represented instead of assuming every module is independent. After finishing the scheduler changes, I spent quite a bit of time expanding the benchmarks. I added more scenarios, an ablation framework, and graphs so I could compare different scheduling policies instead of relying on a few manual examples. The result I cared about the most was the original failure case. The previous scheduler reduced safety coverage during a sensor failure. The new scheduler kept safety at 100%. That was enough to convince me this direction makes more sense. Progress today Compared Greedy and Knapsack scheduling Built benchmark scenarios Implemented Lexicographic Scheduler Added module categories Added module dependency graph Created ablation framework Added benchmark visualizations Wrote research experiment documentation 83 tests passing. Today was a good day, I completed and learned so many things from different algorithms and how each behave differently from other in eveyr situation. And it was fun. Not anything cool yet but it felt like i achieved something here."}, {"post_id": 28595, "ts": "2026-07-14T22:48:05Z", "hours": 1.0, "text": "Devlog #1: Building the Foundation Date: July 15, 2026 Just started the project and it already feels ike theres too much too learn beofre starting. I know it would be hard designing the whole architecture and system and oh god it was! So as I was saying, I started with the most important steps designing the whole system and architecture of the project. The usual stufff!! : Setting up the project The first few commits were just getting the project into a shape where I could actually start building. Initial repository Project structure Cleaning up the directory layout .gitignore Removing unnecessary cache files Till this point I hadn’t really started implementing the actual idea. It was just a setup, that was going to be base of the whole project. Getting modules to communicate The first actual component I worked on was the event system. I didn’t want modules calling each other directly because that would make everything tightly coupled very quickly. Instead, I added an event-based communication layer. At this point it was very simple, but it gave me something to build on. Scheduler and Runtime Once events were working, I moved on to the scheduler. At first I wasn’t sure how much responsibility the scheduler should have. After a few iterations I settled on keeping it responsible only for deciding what runs next. The ExecutionLayer should only execute that plan. I wanted scheduling decisions to exist independently from execution, so I introduced an ExecutionPlan instead of letting the runtime decide everything on the fly. After that I implemented the runtime itself along with the execution layer. The runtime finally had a complete execution cycle. Too late feeling sleepyyy (┬┬﹏┬┬) however i moved on from my sleep with a coffee but the headache wasnot over yet. First redesign While connecting everything together I realised one part of the architecture wasn’t sitting right. ModuleResult was trying to do too much. Instead of letting it continue to grow, I redesigned it into a cleaner boundary between modules and the runtime. That change also let me decouple the ExecutionLayer from the EventBus . The code became much easier to understand what it does. Here i learned before coding any feature you have to have clearest picture of the feature you want to implement or you will end up debugging and redesigning the architecture whole night like me ಥ_ಥ I’m pretty sure this won’t be the last redesign, but it already feels cleaner than the first version. Testing After getting the runtime working, I didn’t want to assume it was correct. I added integration tests for the runtime cycle instead of only testing individual classes. It’s still a very small project, but having tests this early makes me much more comfortable refactoring things later. Documentation I’ve never really documented architectural decisions properly before. Usually I only remember what I changed. A month later I completely forget why I changed it. So this time I documented everything. End of the day By the end of today, System Design and Architecture was complete. There isn’t much to show visually yet. No robot. No simulator. No fancy AI. Just a runtime that can execute modules, schedule work, and pass integration tests. Honestly, I’m happy with that. The interesting features can wait. I’d rather spend time getting the foundation right than spend the next few months constantly rewriting it. Progress today Project structure Event system Scheduler ExecutionPlan Runtime ExecutionLayer Runtime integration tests ModuleResult redesign ExecutionLayer decoupled from EventBus So at last I went to sleep ofcourse it was important to me, I love my sleep. GoodNight ;-)"}]...
|
Title: CORES Runtime by @ravi10 | Stardance
Devlo Title: CORES Runtime by @ravi10 | Stardance
Devlogs:
Devlog #1: Building the Foundation Date: July 15, 2026 Just started the project and it already feels ike theres too much too learn beofre starting. I know it would be hard designing the whole architecture and system and oh god it was! So as I was saying, I started with the most important steps designing the whole system and architecture of the project. The usual stufff!! : Setting up the project The first few commits were just getting the project into a shape where I could actually start building. Initial repository Project structure Cleaning up the directory layout .gitignore Removing unnecessary cache files Till this point I hadn’t really started implementing the actual idea. It was just a setup, that was going to be base of the whole project. Getting modules to communicate The first actual component I worked on was the event system. I didn’t want modules calling each other directly because that would make everything tightly coupled very quickly. Instead, I added an event-based communication layer. At this point it was very simple, but it gave me something to build on. Scheduler and Runtime Once events were working, I moved on to the scheduler. At first I wasn’t sure how much responsibility the scheduler should have. After a few iterations I settled on keeping it responsible only for deciding what runs next. The ExecutionLayer should only execute that plan. I wanted scheduling decisions to exist independently from execution, so I introduced an ExecutionPlan instead of letting the runtime decide everything on the fly. After that I implemented the runtime itself along with the execution layer. The runtime finally had a complete execution cycle. Too late feeling sleepyyy (┬┬﹏┬┬) however i moved on from my sleep with a coffee but the headache wasnot over yet. First redesign While connecting everything together I realised one part of the architecture wasn’t sitting right. ModuleResult was trying to do too much. Instead of letting it continue to grow, I redesigned it into a cleaner boundary between modules and the runtime. That change also let me decouple the ExecutionLayer from the EventBus . The code became much easier to understand what it does. Here i learned before coding any feature you have to have clearest picture of the feature you want to implement or you will end up debugging and redesigning the architecture whole night like me ಥ_ಥ I’m pretty sure this won’t be the last redesign, but it already feels cleaner than the first version. Testing After getting the runtime working, I didn’t want to assume it was correct. I added integration tests for the runtime cycle instead of only testing individual classes. It’s still a very small project, but having tests this early makes me much more comfortable refactoring things later. Documentation I’ve never really documented architectural decisions properly before. Usually I only remember what I changed. A month later I completely forget why I changed it. So this time I documented everything. End of the day By the end of today, System Design and Architecture was complete. There isn’t much to show visually yet. No robot. No simulator. No fancy AI. Just a runtime that can execute modules, schedule work, and pass integration tests. Honestly, I’m happy with that. The interesting features can wait. I’d rather spend time getting the foundation right than spend the next few months constantly rewriting it. Progress today Project structure Event system Scheduler ExecutionPlan Runtime ExecutionLayer Runtime integration tests ModuleResult redesign ExecutionLayer decoupled from EventBus So at last I went to sleep ofcourse it was important to me, I love my sleep. GoodNight ;-)
Devlog #2 Welcome to my another devlog!! Today was all about the scheduler. Yesterday I finished a greedy scheduler, but I wasn’t convinced it was the best option. So today I implemented an exact 0/1 Knapsack scheduler expecting it to perform much better. After running benchmarks, it honestly wasn’t what I expected. Most of the time both schedulers produced almost the same schedule. For a while I thought I had implemented something incorrectly, so I kept checking the code and rerunning the benchmarks. Turns out the implementation wasn’t the problem. The greedy scheduler was already finding the optimal solution in most of the scenarios I generated. The only noticeable differences appeared when resources became really limited. That’s where I found something that bothered me. During a simulated sensor failure, the Knapsack scheduler decided to stop localization because it increased the optimization score. From a mathematical point of view, that decision was correct. From a robotics point of view, it was terrible. A robot shouldn’t sacrifice safety just because it saves a little more battery. That’s when I stopped thinking about improving the algorithm itself and started thinking about what I was actually asking it to optimize. Instead of using one objective function, I switched to a lexicographic approach. Now scheduling decisions happen in this order: Safety Mission progress Energy Execution time This means lower priorities can never override higher ones. While changing the scheduler, I also realised I had been treating every module exactly the same. That didn’t make much sense. A battery monitor shouldn’t be treated the same way as an exploration module. So I divided modules into three groups. Mandatory Safety Critical Mission Those groups are now used directly by the scheduler. I also added a module dependency graph so relationships between modules can be represented instead of assuming every module is independent. After finishing the scheduler changes, I spent quite a bit of time expanding the benchmarks. I added more scenarios, an ablation framework, and graphs so I could compare different scheduling policies instead of relying on a few manual examples. The result I cared about the most was the original failure case. The previous scheduler reduced safety coverage during a sensor failure. The new scheduler kept safety at 100%. That was enough to convince me this direction makes more sense. Progress today Compared Greedy and Knapsack scheduling Built benchmark scenarios Implemented Lexicographic Scheduler Added module categories Added module dependency graph Created ablation framework Added benchmark visualizations Wrote research experiment documentation 83 tests passing. Today was a good day, I completed and learned so many things from different algorithms and how each behave differently from other in eveyr situation. And it was fun. Not anything cool yet but it felt like i achieved something here.
Devlog #3 hmm, So when i started the project i thought i would build an actual simulation where i could show everyone how it works, its still far from that. So i focused on doing that, I took a break from working on the runtime itself and started building the website. Until now, everything was happening inside the codebase. The runtime was working, benchmarks were running, and tests were passing, but if someone visited the repository they still wouldn’t understand what CORES actually does. I just wanted it to explain the project. Building the homepage I started building the first version of the website using Next.js. Most of the time today went into trying different layouts and figuring out how to present the project in a simple way. The homepage now has: Hero section Navigation Runtime statistics Benchmark summary cards Cognitive architecture visualization Responsive layout One sentence stayed with me while building the page: The project should focus on making robots think better in emergency situations and have actual knowlege of their resources and their environment. I think it explains the project much better than a long paragraph. Designing to match my thinking After changing the layout a few times, I removed most of the unnecessary elements and kept the design much simpler. I’d rather have a clean page that explains the project than something flashy that distracts from it. Deployment Getting the website online wasn’t completely straightforward. Since the repository contains both the Python runtime and the Next.js frontend, I had to configure Vercel to build only the frontend. A couple of module import issues also showed up during deployment. After fixing those, the website finally deployed successfully. Thinking about the project differently While working on the homepage, I realised something. The website shouldn’t just tell people what CORES is. It should help them understand it. Instead of reading pages of documentation, I want someone to interact with the runtime and see how scheduling decisions change under different situations. That’s probably where I’ll spend most of my time next. Testing I also added around 80 more tests while working on the project. The runtime is getting bigger every day, so I’d rather spend extra time writing tests now than spend hours debugging later. End of the day Today wasn’t about adding another algorithm. It was about making the project easier to understand. The runtime is only useful if people can understand what it’s trying to do, and I think the homepage is a good first step toward that. Progress today Built the first version of the CORES homepage Added runtime overview and benchmark cards Added cognitive architecture visualization Simplified the website design Deployed the frontend on Vercel Fixed deployment and module import issues Added around 80 new tests Tomorrow I’ll start working on the simulator so visitors can interact with the runtime instead of only reading about it.
Devlog #4 Today was a difficult day as i was working on too many things but i tried to simulate what i have implemented till now. It was all about making it easier to understand. Until now I had graphs, benchmark results and logs. They were useful for me, but if someone else looked at them, they probably wouldn’t understand why the runtime made a particular decision. That made me think. If a robot suddenly stops or changes its plan, how do I show why that happened instead of just showing numbers? So today I spent most of my time working on the replay system. Building a mission To test everything, I created a simple Mars mission. The rover starts driving normally. Halfway through the mission a rockslide blocks the path. Instead of continuing, the runtime reacts. The rover stops. Safety takes priority. Navigation calculates another path. Then the mission continues. Watching that happen felt much better than looking at benchmark graphs. For the first time it actually felt like I was watching the runtime make decisions. I was happy at this point that all this work actually getting showed in a sim (┬┬﹏┬┬) Making it easier to understand I also spent time improving the replay itself. The rover now has moving wheels, suspension, antenna, brake lights, warning lights and dust effects. I also added different camera angles to make it easier to follow what is happening. One feature I enjoyed building was the cognition timeline. Instead of showing every module sitting there doing nothing, I can now see when modules become active, when they pause and when another module takes over. That made the scheduler much easier to understand, while replaying a mission. One thing I realised The most difficult part was finding a simple way to show what the runtime was thinking. Trust me it was difficult, putting everything into a presentable demo, Trying to fit weeks of work into a small demo meant deciding what to show and what to hide. I had to remove a lot of unnecessary details while still making it clear how the runtime actually works. I think that’s something I’ll keep improving as the project grows. What’s next Right now the replay still uses temporary modules. The next step is replacing them with actual runtime components like Perception, Planning, Navigation, State Estimation and Safety Monitor. After that I’ll connect the replay directly to the Python runtime so every event comes from the real scheduler instead of prerecorded data. Progress today Built the first replay system Added a Mars mission Added dynamic hazards Added cinematic camera modes Added rover animations Added cognition timeline Improved replay visualisation The replay is still pretty simple, but it finally feels like the project is becoming something people can interact with instead of just reading about. I finally achieved something what i wanted to when i started the project, a simulation that is demoable. It’s still far from finished, but seeing the runtime make decisions inside a simulation feels like a huge milestone for me.
Devlog #5 I thought it would be an interesting day today, as I was going to add something important that will help a robot perceive and predict the world. Instead, I spent most of my time reading research papers. At first I thought I could just implement a World Model and move on. After reading more robotics papers, I realised everyone seems to solve the problem differently. Some approaches use occupancy grids. Some track objects. Some build semantic maps. Some focus almost entirely on probabilistic state estimation. I couldn’t find a single approach that worked well across every scenario. That changed my view of how I wanted to build this part of CORES. Instead of picking one approach that works only in one scenario, I started implementing multiple approaches instead of one. The plan Implement them. Benchmark them. See where each one performs well. Let the results decide which one should become the default. One thing I realised While doing this, I also realised that calling everything a “World Model” was a bit misleading. The runtime isn’t trying to store the world. It’s trying to estimate what the world currently looks like based on observations. That made “State Estimation” feel like a much better name for the implementation. The architecture didn’t really change. Only the implementation became clearer. It was mostly about changing how I think about this part of the project. I think spending a day reading papers and redesigning things will save me weeks of rewriting later. I’ve mentioned this before, but I think it’s important to build the clearest picture possible of a feature before implementing it. About the papers Just to be clear, the papers and images below are existing robotics research. I’m not claiming them as my own. I’m studying different approaches before deciding how to implement this part of CORES. Progress today Surveyed different robotics approaches Planned multiple State Estimation strategies Started implementing competing approaches Added benchmark framework Wrote more tests Refactored the architecture Renamed the implementation to State Estimation
Devlog #6 👋 I just wanted to add a way for robot to effectively store and fetch its memory. I expected this phase to be fairly straightforward. The runtime already had State Estimation, Planning and Scheduling. Memory sounded like another subsystem to plug into the pipeline, expose a few interfaces and move on. It didn’t quite go that way. I started with what seemed like the obvious design: A common memory interface with multiple interchangeable strategies. Instead of committing to a single implementation, I built: FIFO Time Decay Priority Episodic SPSCA behind the same abstraction. I knew I’d want to compare different approaches later, so making them interchangeable from the beginning felt like the right decision. Most of the implementation went smoothly 🔥. Then I reached Sparse Principal Component Analysis (SPSCA). Unlike the other strategies, SPSCA wasn’t just storing records. It was trying to represent them. My first implementation followed the algorithm closely. Every piece of content was recursively encoded using semantic pointer operations before being stored. At the time, I was pretty happy with it. Then I ran the benchmarks. The larger scenarios became painfully slow. Some didn’t even finish. I was upset that this whole work and time for nothing and just ruining the project? :-( At this point, I feel like giving up on this and do the next thing or just implement this in the simplest way possible. I actually started making the next phase idea and then while doing that, suddenly out of nowhere, I got an idea about how to find the exact cause of failure 🥹. So, I just went to see that was my hypothesis was correct about the error. I spent a whole evening looking for small optimizations. Once I did, I found the issue with it!. The encoding stage itself had become the bottleneck. That forced me to see the bigger picture of what’s happening during that stage. Instead of trying to optimize the existing implementation, I redesigned the encoding pipeline completely. Memory content is now serialized into a deterministic representation and converted into fixed-length vectors using SHA-256 before participating in similarity operations. The semantic pointer operations are still implemented, but they’re no longer part of every storage operation. That one decision simplified the whole implementation very much. Watching the benchmarks finally finish without timing out was a huge relief. 😭 With the implementation stable again, I turned my attention to testing. I added benchmarks for insertion, retrieval latency, sustained memory growth and strategy comparisons, along with a much larger test suite covering storage, retrieval, forgetting behaviour, vector operations and runtime integration. By the end of the phase, the runtime could finally retain experiences across execution cycles. But, stopped myself from immediately moving on to the next feature as there were still a few loose ends I wanted to clean up before building anything on top of Memory. Nothing in the runtime actually depends on memory yet. Planning doesn’t query it, scheduling doesn’t use it, and no module learns from previous experience. I considered pushing further, but decided against it. Changing the foundation becomes much harder once other components start depending on it. As a small side quest during this phase, I also redesigned the project homepage. Hopefully it finally looks the way I originally imagined it. For now, memory exists for one reason: to give the runtime a place to store or fetch it in a very efficient way.
Devlog #7 Today’s session was dedicated to a very big architectural refactor in the project. The goal was to simplify the memory and reasoning pipeline by redesigning how memory is represented and consolidated while preserving compatibility with the existing runtime. Session Goals Redesigning the memory architecture Removing old unnecessary learning subsystem Introducing Logger Migrating SPSCA Preserving runtime compatibility Keeping full test suite passing Architecture Design I went back to the basics and reviewed the entire architecture. I wanted to make it cleaner by identifying overlapping responsibilities between Memory and Learning. It was very time consuming as there were too many responsibilities and modules to simplify and distinguish here. This resulted in a new architecture: EpisodicStore SemanticStore Logger Since I believe learning will be taken care of in future updates. Implementation Implemented: Memory redesign Logger subsystem Trigger policies SPSCA migration Runtime integration Memory now internally composes Episodic Memory, Semantic Memory, and Logger while exposing a single interface to the runtime. Refactoring Performed a full project-wide migration: replaced string record types with enums updated runtime integration updated imports removed old unnecessary learning components updated public exports Testing & Validation Refactored the testing suite: New module integration tests SPSCA tests Trigger policy tests Updated memory tests Removed old unnecessary tests Final result: 590 / 590 tests passing Lint clean I was happy that the refactor didn’t break anything! (^///^) Documentation Updated: Memory documentation Benchmarks Demo programs Outcome The runtime now has a significantly cleaner architecture: State Estimation → Memory Episodic Semantic Logger → Planning → Scheduler → Execution This refactor was very important as it redefined the whole runtime(base) on which the whole project was built on. This will help to build future phases, secondly dividing memory types was one of the best decisions.
Devlog #8 The demo found a bug before I did. I had that type of day where, you think every feature is working correctly and when you test, you find out its not. The standalone Learning subsystem was deleted a while back. In its place I added the Logger, which uses a compression algorithm living inside Memory. SPSCA, the Semantic Pointer State Compression Algorithm, moved out of the memory strategies and into the Logger where it belonged. The new module: logger it only had one job and that was to summarize long memories and log it and somehow it still failed in demo. 😑 Then demo_memory.py ended with a summary that read: Episodic records: 7 | Semantic narratives: 0 If you watched that demo as an outsider, you would walk away thinking the Logger was a sticker on the box. It looked broken, because it was idle. The records I stored were all too important to archive, but the default trigger needed 50 new records to even consider firing. So I just re-wrote the pipeline and tested it. The bug was just one line Then the demo did something embarrassing. It caught a real bug. The source IDs in the second narrative overlapped with the first. Records that had already been summarized were showing up to be summarized again. Imagine a robot checking the same doorway every patrol because it never recorded that it had already inspected the doorway. The culprit was mark_consolidated checker. It was asked to flip a batch of records to CONSOLIDATED, and it did the polite thing of fetching one record per id. Except every single fetch returned the same record. The top one. So one record got filed, and the other ten stayed on the desk, waiting to be processed forever. A one-line fix and a regression test later, no record is ever re-compressed. Caught the bug by reading my own demo output, which is the cheapest way to find a bug on earth. (≧▽≦) The benchmark that revealed the hidden cost Then I measured the whole pipeline. Not the Logger in isolation, the full journey. Store, archive, trigger, compress, file into semantic memory. The numbers looked fine and then slowly stopped being fine:- 100 records: about 0.66 ms each 1000 records: about 0.83 ms each 5000 records: about 1.77 ms each Every cycle, archiving and consolidation scan the whole store to find what changed. That is a classic hidden O(n^2), the kind that is invisible at demo size and painful at robot lifetime size. It is fine for now. It is written down. It will be fixed before anyone deploys a robot that lives for a year. 😓 The interesting part wasn’t fixing the bug. It was realizing that a good demo isn’t just there to impress people. It’s another test. Unlike unit tests, it exercises the system the way a user would, and today it caught a bug that hundreds of automated tests never did. Sometimes the fastest debugger is simply watching your own software run.
Devlog #9 Meet the Planning Module The Planning Module answers one simple question: “What should we do next?” It looks at the goal and the current state, proposes candidate plans, and picks the best one. The module has one interface and five planners. You hand it a mission, which is a collection of goals. Each goal is something the robot wants to be true. Every planner produces candidate plans with a confidence, estimated cost, duration, and utility score. The module returns all candidates and the one it selects as the best. The five planners are: GoalPlanner searches forward using action pre-conditions and effects. HTNPlanner breaks high-level tasks into smaller actions using authored methods. UtilityPlanner scores candidates and picks the highest. ReactivePlanner reacts immediately to simple conditions. BehaviorTreePlanner executes authored behavior trees. All of them implement the same PlannerStrategy interface, so they can be swapped without changing the rest of the runtime. The planner learned to adapt its own plans Before today, whenever something changed during a mission, the planner threw away the entire plan and started again. Now it walks through the existing plan step by step. If the beginning of the plan is still valid, it keeps it. As soon as it reaches a step that can no longer be completed, it rebuilds only the remaining part. This means the robot no longer repeats work it has already finished. Both the Goal Planner and HTN Planner now support this. Every repaired plan also records where the original plan became invalid. The Runtime handles this automatically. If the environment changes, it first tries to update the existing plan. Only if that fails does it generate a completely new one. The planner learned to notice change The next challenge was deciding when to update a plan. The solution was a planning snapshot: a small summary of the robot and world containing only the information planning actually cares about. Objects, flags, payloads, and sensor-health keys are sorted. Battery is grouped into critical , low , medium , or high instead of using the exact percentage. Temperatures and positions are rounded, while noisy values like timestamps and raw pose are ignored. This keeps the snapshot deterministic, so identical worlds always produce identical snapshots and unnecessary replanning is avoided. The planner learned from experience The second big change was teaching the planner to use previous experiences. Before today, it only looked at the current situation. Now it asks Memory for a summary of previous successes and failures before making a decision. A new wrapper called MemoryAwarePlanner works with any existing planner. It lets the original planner create a plan, then adjusts the choices based on previous outcomes. Plans that failed before become less attractive, while successful ones get a small boost. The selected plan is stored back into Memory so future missions can learn from it as well. If there is no previous experience, the planner behaves exactly as it did before. The demo ties everything together. First, Door A becomes blocked, so the planner updates the existing plan and switches to Door B instead of starting over. Then, on the next run, Memory remembers that Door A failed twice while Door B succeeded once, so the planner chooses Door B from the beginning.
Devlog #10 Meet the Mission Manager “What should the robot work on right now?” Planning already knows how to achieve a goal, but it doesn’t decide which goal is the most important. The Mission Manager sits one level above Planning, keeps track of every mission, chooses the active goal, and hands only that goal to the planner. Spent most of the day building the Mission Manager. The idea sounds simple: a mission is a list of goals, the manager picks the active one, hands it to Planning, and waits for the result. The details were anything but simple. I started with the mission lifecycle. Every mission begins in NEW , becomes READY , then ACTIVE , and eventually reaches a terminal state: COMPLETED , FAILED , or CANCELLED . A mission can also be PAUSED and resumed later. The transition rules are strict. You can’t jump from CANCELLED back to ACTIVE , and you can’t skip directly from NEW to COMPLETED . Every transition has to make sense. I spent much longer than I expected getting the state diagram and all the transitions right. Preemption was probably the most interesting part. When a higher-priority mission arrives, the current one moves back to READY , not PAUSED . That distinction took a while to figure out. PAUSED means someone intentionally stopped the mission. Preemption means the system decided something more important needs attention first. Different reasons, different states. Goals also execute one at a time. A goal can depend on another goal, so a task like Drop Package won’t begin until Pick Package has finished. Goal completion works in two independent ways. You can either call complete_goal() directly, or use a constraint evaluator that checks the robot’s state automatically. Neither depends on the other, and a goal never completes simply because it has no constraints. That felt like the safest design. A bug the dashboard exposed Near the end, I ran into a strange bug. As soon as a mission finished, the manager immediately wrote "idle" into the robot state, clearing the mission ID and progress. If you were watching the dashboard, the mission simply disappeared the moment it completed. The fix was straightforward: keep the final mission state visible until another mission becomes active. Now the homepage trace finishes at 100% Complete instead of dropping back to idle immediately. It was a small issue, but it made the runtime feel much more polished. Integration The cleanest part of this phase was the integration. Nothing else needed to change. The Scheduler still schedules. The Planner still plans. The Mission Manager simply runs earlier in the runtime cycle, selects the active goal, and passes it to Planning. Even the original way of giving a mission directly to the Runtime still works, so existing code remains compatible. Some Cleanups The rest of the session went into polishing the project. Updated documentation and runtime diagrams Refreshed test and strategy counts Replaced the remaining banned terminology Renamed the HTN primitive class across seven files for consistency Fixed benchmark test collection by adding import fallbacks for script execution Nothing particularly exciting, but it leaves the project in a much healthier state. I think this phase is finally complete.
Ships:
CORES is a research project exploring how autonomous robots can schedule cognition instead of simply executing tasks. This update introduces the first public version of the CORES experience. I built and deployed a homepage that explains the runtime architecture, scheduling, benchmark overview, and cognitive module system. A major focus was making a complex robotics runtime understandable through clean visual design rather than long technical documentation. The next milestone is an interactive runtime simulator where visitors will be able to inject hazards, change mission conditions, and watch the scheduler reprioritize cognitive modules in real time. Exact visualizations and benchmark charts will be added. I’d love feedback on: Is the core idea easy to understand? Does the homepage clearly communicate the purpose of CORES? What sections are confusing or missing?
CORES Runtime is an open-source cognitive runtime for autonomous robots. Instead of controlling robot hardware directly, it manages the software systems that sit between perception, planning, scheduling, memory, and execution. Its goal is to help robots decide what to run, when to run it, and how to manage limited compute and energy while remaining deterministic and predictable. This ship focuses on a major redesign of the memory subsystem. I replaced the previous learning architecture with a new memory pipeline built around Episodic Memory, Semantic Memory, and a Logger that compresses experiences into long-term knowledge. During development, I discovered and fixed a consolidation bug through the demo itself, added regression tests, benchmarked the full compression pipeline, and documented a known scaling limitation for future optimization....
|
1792878797.061941
|
1793742797.061941
|
|
35324
|
Dino Game by @Dupl1c8 | Stardance
|
Dupl1c8
|
2
|
10.0
|
18
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-06T19:43:18Z", "hours": 4.0, "multiplier": 4.91, "payout": 18, "blessing": "neutral", "text": "I added the fourth minigame to my warioware style game! This one was probably the most confusing to code because I didn’t fully understand how I could use Area2D commands to create multiple car objects on screen at the same time, which was quite a headache. I am quite proud that I was able to finish it though! In this new minigame you cannot move your character left or right (only jump) because it’s meant to be a geometry dash style minigame. Notes on the other minigames: #1 is a platformer minigame where you collect coins #2 is a clicker minigame where you click on coins #3 is a pong minigame where you survive until the timer runs out Thank you for playing my game!", "repo": "https://github.com/Duplic8/JustAGame", "demo": "https://duplic8.itch.io/dinogame"}, {"ship_num": 2, "ts": "2026-07-28T00:37:36Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a warioware style game on godot that includes two minigames. The part that challenged me the most was incorporating the coins into the system because I used AnimatedSprite2D to display my coins instead of the way that the tutorial did. This made it quite confusing because I couldn’t follow the tutorial. I am proud of how I made the platformer controls feel extremely responsive and hope to use this code in future projects as well! I will admit that this game is quite short, so I hope to make my future projects a lot longer. Thank you for playing my game!", "repo": "https://github.com/Duplic8/JustAGame", "demo": "https://duplic8.itch.io/dinogame"}]...
|
[{"post_id": 42166, "ts": "202 [{"post_id": 42166, "ts": "2026-08-06T19:30:47Z", "hours": 2.3992, "text": "Added minigame 4 to my warioware style game. It’s kind of like a geometry dash style game/ google dinosaur game where you jump to dodge the obstacles! This one was lowkey a headache to code."}, {"post_id": 37339, "ts": "2026-07-30T00:03:23Z", "hours": 1.2136, "text": "Added a new game! Pong! In pong I mainly struggled with the physics for the ball, but was able to figure it out with vectors. Additionally, I added game titles in between levels because reviewers were confused about they had to do in each level."}, {"post_id": 36126, "ts": "2026-07-28T00:26:17Z", "hours": 0.9536, "text": "Polished up the rest of the game. Added a victory and death screen and coded a replay button. Finalized time limits for each level. Exported the game and finished writing a readme."}, {"post_id": 35690, "ts": "2026-07-27T09:01:41Z", "hours": 4.3931, "text": "Finished the first minigame and about to work on the second clicker minigame! I had a lot of trouble trying to get the animated coins to interact with the player but I was able to figure it out in the end. I also had a difficult time getting the game to end when the last coin was collected! Here is a video of it!"}, {"post_id": 34903, "ts": "2026-07-26T00:08:12Z", "hours": 0.8403, "text": "Worked on the UI and code for the title and timer screen!"}]...
|
Title: Dino Game by @Dupl1c8 | Stardance
Devlogs: Title: Dino Game by @Dupl1c8 | Stardance
Devlogs:
Worked on the UI and code for the title and timer screen!
Finished the first minigame and about to work on the second clicker minigame! I had a lot of trouble trying to get the animated coins to interact with the player but I was able to figure it out in the end. I also had a difficult time getting the game to end when the last coin was collected! Here is a video of it!
Polished up the rest of the game. Added a victory and death screen and coded a replay button. Finalized time limits for each level. Exported the game and finished writing a readme.
Added a new game! Pong! In pong I mainly struggled with the physics for the ball, but was able to figure it out with vectors. Additionally, I added game titles in between levels because reviewers were confused about they had to do in each level.
Added minigame 4 to my warioware style game. It’s kind of like a geometry dash style game/ google dinosaur game where you jump to dodge the obstacles! This one was lowkey a headache to code.
Ships:
I made a warioware style game on godot that includes two minigames. The part that challenged me the most was incorporating the coins into the system because I used AnimatedSprite2D to display my coins instead of the way that the tutorial did. This made it quite confusing because I couldn’t follow the tutorial. I am proud of how I made the platformer controls feel extremely responsive and hope to use this code in future projects as well! I will admit that this game is quite short, so I hope to make my future projects a lot longer. Thank you for playing my game!
I added the fourth minigame to my warioware style game! This one was probably the most confusing to code because I didn’t fully understand how I could use Area2D commands to create multiple car objects on screen at the same time, which was quite a headache. I am quite proud that I was able to finish it though! In this new minigame you cannot move your character left or right (only jump) because it’s meant to be a geometry dash style minigame. Notes on the other minigames: #1 is a platformer minigame where you collect coins #2 is a clicker minigame where you click on coins #3 is a pong minigame where you survive until the timer runs out Thank you for playing my game!...
|
1792838868.476294
|
1792925268.476294
|
|
35472
|
Aerodynamic Slack Bot by @colgation | Stardance
|
colgation
|
2
|
5.0
|
14
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-15T00:22:54Z", "hours": 4.0, "multiplier": 3.02, "payout": 14, "blessing": "neutral", "text": "I’m excited to ship my very FIRST slack bot : Aerodynamic It is full of fun fact about many planes and has a stand-out feature: Comparing two planes against each other in the “versus mode”. Commands: /aerodynamic-ping - Check bot latency /aerodynamic-737 - Get a Boeing 737 fun fact /aerodynamic-cessna172 - Get a Cessna 172p Skyhawk fun fact /aerodynamic-wright - Get a Wright Flyer fun fact /aerodynamic-blackbird - Get an SR-71 Blackbird fun fact /aerodynamic-a380 - Get an Airbus A380 fun fact /aerodynamic-747 - Get a Boeing 747 fun fact /aerodynamic-concorde - Get a Concorde fun fact /aerodynamic-beluga - Get an Airbus Beluga fun fact /aerodynamic-versus [plane1] [plane2] - Compare two planes Go test it out on the bot spam channel in hackclub slack! https://hackclub.enterprise.slack.com/archives/C0P5NE354", "repo": "https://github.com/194500-cpu/Aerodynamic-Slack-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0BJ92W8L12"}, {"ship_num": 2, "ts": "2026-07-16T23:17:04Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A Slack bot that runs 24/7 on Nest and has 5 commands: /aerodynamic-help - shows all available commands /aerodynamic-ping - Check bot latency /aerodynamic-737 - Get an Airbus 737 fun fact /aerodynamic-cessna172 - Get a Cessna 172p Skyhawk fun fact /aerodynamic-wright - Get a Wright Flyer fun fact Test out the commands in the #bot-spam channel on slack!", "repo": "https://github.com/194500-cpu/Aerodynamic-Slack-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0BJ92W8L12"}]...
|
[{"post_id": 47219, "ts": "202 [{"post_id": 47219, "ts": "2026-08-15T00:08:00Z", "hours": 0.2681, "text": "Final Devlog before submit: I managed to upload the new feature to nest, and it was arguably the best one yet. For my final update, I wanted to make a mroe advanced feature. I wrote a dictionary with information, and this command takes two arguments and compares their stats."}, {"post_id": 46573, "ts": "2026-08-13T22:06:06Z", "hours": 0.7044, "text": "Created a versus command-Compare two planes!"}, {"post_id": 44518, "ts": "2026-08-10T10:16:59Z", "hours": 3.0311, "text": "I added much more planes and images to go along with them (took me a while to find them). I also needed a really long time to resolve git issues, but it ended up working after I cleared local saves."}, {"post_id": 29810, "ts": "2026-07-16T23:05:35Z", "hours": 0.3308, "text": "Command line is so CONFUSING, but turns out I didn’t SSH. Its all up now!"}, {"post_id": 28804, "ts": "2026-07-15T09:36:17Z", "hours": 0.2939, "text": "Airplane fun fact bot!"}]...
|
Title: Aerodynamic Slack Bot by @colgation | Stard Title: Aerodynamic Slack Bot by @colgation | Stardance
Devlogs:
Airplane fun fact bot!
Command line is so CONFUSING, but turns out I didn’t SSH. Its all up now!
I added much more planes and images to go along with them (took me a while to find them). I also needed a really long time to resolve git issues, but it ended up working after I cleared local saves.
Created a versus command-Compare two planes!
Final Devlog before submit: I managed to upload the new feature to nest, and it was arguably the best one yet. For my final update, I wanted to make a mroe advanced feature. I wrote a dictionary with information, and this command takes two arguments and compares their stats.
Ships:
A Slack bot that runs 24/7 on Nest and has 5 commands: /aerodynamic-help - shows all available commands /aerodynamic-ping - Check bot latency /aerodynamic-737 - Get an Airbus 737 fun fact /aerodynamic-cessna172 - Get a Cessna 172p Skyhawk fun fact /aerodynamic-wright - Get a Wright Flyer fun fact Test out the commands in the #bot-spam channel on slack!
I’m excited to ship my very FIRST slack bot : Aerodynamic It is full of fun fact about many planes and has a stand-out feature: Comparing two planes against each other in the “versus mode”. Commands: /aerodynamic-ping - Check bot latency /aerodynamic-737 - Get a Boeing 737 fun fact /aerodynamic-cessna172 - Get a Cessna 172p Skyhawk fun fact /aerodynamic-wright - Get a Wright Flyer fun fact /aerodynamic-blackbird - Get an SR-71 Blackbird fun fact /aerodynamic-a380 - Get an Airbus A380 fun fact /aerodynamic-747 - Get a Boeing 747 fun fact /aerodynamic-concorde - Get a Concorde fun fact /aerodynamic-beluga - Get an Airbus Beluga fun fact /aerodynamic-versus [plane1] [plane2] - Compare two planes Go test it out on the bot spam channel in hackclub slack! https://hackclub.enterprise.slack.com/archives/C0P5NE354...
|
1792821382.430523
|
1792907782.430523
|
|
35484
|
My own site! by @AshutoshPola | Stardance
|
AshutoshPola
|
2
|
12.0
|
18
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-11T16:56:21Z", "hours": 7.0, "multiplier": 2.63, "payout": 18, "blessing": "neutral", "text": "final project", "repo": "https://github.com/ashutosh-pola/Mysite", "demo": "https://ashutosh-pola.github.io/Mysite/"}, {"ship_num": 2, "ts": "2026-08-04T11:45:26Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This was my first time making a site so its really simple but it gets the job done. The website used no JS just simple html and CSS", "repo": "https://github.com/ashutosh-pola/Mysite", "demo": "https://ashutosh-pola.github.io/Mysite/"}]...
|
[{"post_id": 45254, "ts": "202 [{"post_id": 45254, "ts": "2026-08-11T16:31:52Z", "hours": 2.1744, "text": "guess what, pickle riiiiiick"}, {"post_id": 44578, "ts": "2026-08-10T13:08:55Z", "hours": 2.8886, "text": "added a scroll animation, looks so tuff. Took a while cuz it took me time to learn java script"}, {"post_id": 42698, "ts": "2026-08-07T15:33:08Z", "hours": 1.8789, "text": "I changed the overall style and added a spinning pearl, gonna add more features tmrw"}, {"post_id": 40686, "ts": "2026-08-04T11:36:16Z", "hours": 1.7067, "text": "Finally finished added css, it took a while to add the box and make it redirect to my repositors but in the end it was all worth it. Its simple but does its job. This is the link for it https://ashutosh-pola.github.io/Mysite/"}, {"post_id": 40299, "ts": "2026-08-03T18:50:54Z", "hours": 3.0428, "text": "spent the time learning basic html, and made the basic barebone part of the website"}]...
|
Title: My own site! by @AshutoshPola | Stardance
Title: My own site! by @AshutoshPola | Stardance
Devlogs:
spent the time learning basic html, and made the basic barebone part of the website
Finally finished added css, it took a while to add the box and make it redirect to my repositors but in the end it was all worth it. Its simple but does its job. This is the link for it https://ashutosh-pola.github.io/Mysite/
I changed the overall style and added a spinning pearl, gonna add more features tmrw
added a scroll animation, looks so tuff. Took a while cuz it took me time to learn java script
guess what, pickle riiiiiick
Ships:
This was my first time making a site so its really simple but it gets the job done. The website used no JS just simple html and CSS
final project...
|
1792878492.8410382
|
1793742492.8410382
|
|
35522
|
My own site! by @Lim | Stardance
|
Lim
|
2
|
2.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-16T13:23:32Z", "hours": 1.0, "multiplier": 1.01, "payout": 1, "blessing": "neutral", "text": "I have improved my personal website, tho i have difficulty in making the smooth scoll , any improvement i can make?", "repo": "https://github.com/limkaixuan123456789-wq/PersonalWebsite", "demo": "https://limkaixuan123456789-wq.github.io/PersonalWebsite/#about"}, {"ship_num": 2, "ts": "2026-07-15T14:07:08Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Here is my personal website, i have problem in coding this website. https://limkaixuan123456789-wq.github.io/PersonalWebsite/#about", "repo": "https://github.com/limkaixuan123456789-wq/PersonalWebsite", "demo": "https://limkaixuan123456789-wq.github.io/PersonalWebsite/#about"}]...
|
[{"post_id": 29471, "ts": "202 [{"post_id": 29471, "ts": "2026-07-16T13:22:33Z", "hours": 1.2725, "text": "I did some improvement, but i have problem for the smooth scroll. Can you tell me what should I Improve?"}, {"post_id": 28884, "ts": "2026-07-15T13:51:20Z", "hours": 0.7369, "text": "I made my first personal site, what do you think?"}]...
|
Title: My own site! by @Lim | Stardance
Devlogs:
Title: My own site! by @Lim | Stardance
Devlogs:
I made my first personal site, what do you think?
I did some improvement, but i have problem for the smooth scroll. Can you tell me what should I Improve?
Ships:
Here is my personal website, i have problem in coding this website. https://limkaixuan123456789-wq.github.io/PersonalWebsite/#about
I have improved my personal website, tho i have difficulty in making the smooth scoll , any improvement i can make?...
|
1792843011.0477557
|
1792929411.0477557
|
|
35549
|
Atom Simulator VSEPR by @mincych | Stardance
|
mincych
|
2
|
20.3
|
310
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-01T21:02:51Z", "hours": 14.0, "multiplier": 16.52, "payout": 237, "blessing": "neutral", "text": "HOW TO USE THE PROJECT ? : Enter the number of particles in the input box (1000 is a recommended number), hit Apply and watch the simulation run. Left click and drag to rotate, scroll to zoom. Hit Explanation for a full breakdown of how it works. I built a 3D molecular geometry simulator inspired by VSEPR theory from chemistry class using physics calculation, basically simulating how atoms arrange themselves through repulsion. V1 existed but had no controls and was written in VPython, so I learned Three.js from scratch, raw-dogging documentation the entire way. The challenging part was understanding how Three.js actually works while simultaneously figuring out the physics, forces, dampening, normalisation, cylinder connections between stable particles. The “magic numbers” problem was real problem too, tuning variables so the simulation looks correct and visually pleasing at the same time. But tbh, the writing the code turned out to be so confusing, it took me like 15 hours in total, where as I expected it to get finished in 2 hours, since I thought I was “just gonna translate some code from one language to another” Most proud of just finishing it honestly. When it finally worked, legendary doesn’t even cover it. IT WAS MORE THAN AMAZING.", "repo": "https://github.com/cirqatha/AtomSim", "demo": "https://cirqatha.github.io/AtomSim/"}, {"ship_num": 2, "ts": "2026-07-15T15:47:55Z", "hours": 6.0, "multiplier": 11.34, "payout": 73, "blessing": "neutral", "text": "What did you make? An Atom Simulator that visualises VSEPR theory — a chemistry concept I was studying in 11th grade that explains how atoms arrange themselves when forming compounds. I gave each particle a repulsive force and used some physics where atoms naturally settle into the same structures VSEPR predicts. What was challenging? Two things: The radial force, getting particles to stay on the sphere surface without snapping or drifting took a lot of tuning (damping constants, partial normalisation, force scaling) 2.Dynamic bond drawing, since particles move every frame, the cylinders connecting them have to be recalculated each frame, including figuring out which particles are close enough to be “bonded” and hiding the rest What are you proud of? I started by manually hard-coding forces between every pair of atoms, then refactored everything into loops and 2D lists, cutting the code down massively. I also pre-compute all the frames before the animation starts, so playback is smooth with no lag. To test it Use the GlowScript web version, it works in any browser instantly. If you run it locally, note that it freezes for ~30 seconds while pre-computing frames before the animation starts. That’s normal, not a crash.", "repo": "https://github.com/cirqatha/AtomSim", "demo": "https://cirqatha.github.io/AtomSim/"}]...
|
[{"post_id": 39529, "ts": "202 [{"post_id": 39529, "ts": "2026-08-02T15:29:17Z", "hours": 0.2969, "text": "Yea, I updated some minor things, nothing big"}, {"post_id": 39083, "ts": "2026-08-01T19:36:51Z", "hours": 9.3483, "text": "Finished V2 of my Atom simulator with A LOT OF IMPROVEMENTS https://cirqatha.github.io/AtomSim/ So for the V1, I made an Atom simulator out of pure curiosity from my 11th grade chemistry concept called VSEPR theory. I was told that the website didnt have any controlls, or any interaction, which made it kinda plain. But I stll managed to get high ratings. So I decided to improve it, but I wrote the previous simulation using VPython, which tbh is the grandfather level compared to three.js which is actively used in websites. So I learnt three.js and wrote the code. And here is the working of the code if anybody’s interested in it. PROBLEMS I FACED = yea I did not use AI to write code, but the problem is I was learning a new language and three.js. AND I RAW DOGGED DOCUMENTATIONS, i’ve never in my life coded in a more primitive way. I also had to understand the way three.js works, its actual way of doing things. You can only imagine how legendary I felt when the project was over. The “magic numbers” = I’ve recieved question from my previous ship about seemingly random values set for variables in the simulation. Remember, this is a very simplified simulation, a simulation with 99.99% accuracy requires a lot of factors, making this complex. The second reason is simply because that the numbers are set to make the motion of particles and visibility of particles visually pleasing while still keeping the structures mostly correct. Hence the “magic numbers”. Like I cannot set distance between atoms super low to simulate reality, thats why you would see the force constant super bumped up. The UI = I’ve added a box to change the number of particles and simulate them, along with a “render End Frame” checkbox which as the name suggests, only calculates stuff till the end frame, without simultaneously updating positions, rather updating at last. There is also a guide for how many particles it can handle safely, I’ve also shown a orbit control guide there which tells you how to rotate and zoom into the simulation. Updating objects = When you enter the number of particles, it first clears all the particles rom previous simulation, along with arrays and stuff. Then it adds particles, initialises velocites, and positions. Calculation Forces = In the beginning of each simulation, the arrays is first cleared to clear the forces from previous simulation. Now, For each particle, force from every other particle is calculated, then added together to give a final force vector for that particle. Calculating Velocities = Same clearing up loop with this.Also, This one’s really simple, its just a simple v = u + at formula. Every calculation is followed by a 0.9 factor scaling which dampens the velocity every frame. Calculating Positions = For this one we first store the previous position in a temp variable before clearing it. We then calculate the distance travelled using the formula s = ut + (1/2)at^2. This is followed by a little normalisation, which is basically like if you are spinning a ball with a string, normalisation factor decides how much stretchy the string is. 100% normalisation means the ball travells on the edge of a perfect sphere, a 10% normalisation means it can sometimes go away from that edge, but will not drift away because an additional force is attracting it to the edge. That distance travelled is added to the previous position stored in temp and that gives the position for that frame. Calculating Cylinders = For each particle, if it moves less than 0.1 distance between two frames, its considered stable then and it is connected to its nearest surrounding particles using cylinders. Render End Frame = Theres a feature which lets you to only render final frame of a 20 second simulation, which probably saves your system some resource usage. Though all the major stuff like calculation has to happen to calculate it."}, {"post_id": 36209, "ts": "2026-07-28T04:29:53Z", "hours": 3.5719, "text": "So I took the recommendations from people that rated my previous ship. Now I’ve switched from VPython to Three.js, the code doesnt exactly translate directly, I’m working on structural changes as well. The part that takes the longest is not using AI to code, I’m raw dogging this task through documentations. So far I’ve learnt how to use Three.js, and set up some structural base for the code. I guess it’ll take around 3-5 hours more to complete the project."}, {"post_id": 29942, "ts": "2026-07-17T04:01:21Z", "hours": 1.5181, "text": "Added a smart cylinder calculation This is a 10000 particle beast which took 20 minutes to compute one final frame after settling. Added numpy because calculations are reduced from hours to minutes"}, {"post_id": 28869, "ts": "2026-07-15T13:08:08Z", "hours": 6.4008, "text": "* Built an Atom Simulator I’m in 11th so I had the topic of VSEPR in my curriculum, So I built a program that simulates these structures by giving repulsion energies to these atoms. Then after using VPython, vectors, partial normalisation, 2D Lists and stuff I made it a bit not so boring. The structure automatically takes place when they go into lowest energy state. The positions are all first calculated and then the animation begins where you can see them going into lowest energy states. The maximum limit is said to be 12, but you could try with any number of particles you want, seeing how the structure would look like if it were real"}]...
|
Title: Atom Simulator VSEPR by @mincych | Stardanc Title: Atom Simulator VSEPR by @mincych | Stardance
Devlogs:
* Built an Atom Simulator I’m in 11th so I had the topic of VSEPR in my curriculum, So I built a program that simulates these structures by giving repulsion energies to these atoms. Then after using VPython, vectors, partial normalisation, 2D Lists and stuff I made it a bit not so boring. The structure automatically takes place when they go into lowest energy state. The positions are all first calculated and then the animation begins where you can see them going into lowest energy states. The maximum limit is said to be 12, but you could try with any number of particles you want, seeing how the structure would look like if it were real
Added a smart cylinder calculation This is a 10000 particle beast which took 20 minutes to compute one final frame after settling. Added numpy because calculations are reduced from hours to minutes
So I took the recommendations from people that rated my previous ship. Now I’ve switched from VPython to Three.js, the code doesnt exactly translate directly, I’m working on structural changes as well. The part that takes the longest is not using AI to code, I’m raw dogging this task through documentations. So far I’ve learnt how to use Three.js, and set up some structural base for the code. I guess it’ll take around 3-5 hours more to complete the project.
Finished V2 of my Atom simulator with A LOT OF IMPROVEMENTS https://cirqatha.github.io/AtomSim/ So for the V1, I made an Atom simulator out of pure curiosity from my 11th grade chemistry concept called VSEPR theory. I was told that the website didnt have any controlls, or any interaction, which made it kinda plain. But I stll managed to get high ratings. So I decided to improve it, but I wrote the previous simulation using VPython, which tbh is the grandfather level compared to three.js which is actively used in websites. So I learnt three.js and wrote the code. And here is the working of the code if anybody’s interested in it. PROBLEMS I FACED = yea I did not use AI to write code, but the problem is I was learning a new language and three.js. AND I RAW DOGGED DOCUMENTATIONS, i’ve never in my life coded in a more primitive way. I also had to understand the way three.js works, its actual way of doing things. You can only imagine how legendary I felt when the project was over. The “magic numbers” = I’ve recieved question from my previous ship about seemingly random values set for variables in the simulation. Remember, this is a very simplified simulation, a simulation with 99.99% accuracy requires a lot of factors, making this complex. The second reason is simply because that the numbers are set to make the motion of particles and visibility of particles visually pleasing while still keeping the structures mostly correct. Hence the “magic numbers”. Like I cannot set distance between atoms super low to simulate reality, thats why you would see the force constant super bumped up. The UI = I’ve added a box to change the number of particles and simulate them, along with a “render End Frame” checkbox which as the name suggests, only calculates stuff till the end frame, without simultaneously updating positions, rather updating at last. There is also a guide for how many particles it can handle safely, I’ve also shown a orbit control guide there which tells you how to rotate and zoom into the simulation. Updating objects = When you enter the number of particles, it first clears all the particles rom previous simulation, along with arrays and stuff. Then it adds particles, initialises velocites, and positions. Calculation Forces = In the beginning of each simulation, the arrays is first cleared to clear the forces from previous simulation. Now, For each particle, force from every other particle is calculated, then added together to give a final force vector for that particle. Calculating Velocities = Same clearing up loop with this.Also, This one’s really simple, its just a simple v = u + at formula. Every calculation is followed by a 0.9 factor scaling which dampens the velocity every frame. Calculating Positions = For this one we first store the previous position in a temp variable before clearing it. We then calculate the distance travelled using the formula s = ut + (1/2)at^2. This is followed by a little normalisation, which is basically like if you are spinning a ball with a string, normalisation factor decides how much stretchy the string is. 100% normalisation means the ball travells on the edge of a perfect sphere, a 10% normalisation means it can sometimes go away from that edge, but will not drift away because an additional force is attracting it to the edge. That distance travelled is added to the previous position stored in temp and that gives the position for that frame. Calculating Cylinders = For each particle, if it moves less than 0.1 distance between two frames, its considered stable then and it is connected to its nearest surrounding particles using cylinders. Render End Frame = Theres a feature which lets you to only render final frame of a 20 second simulation, which probably saves your system some resource usage. Though all the major stuff like calculation has to happen to calculate it.
Yea, I updated some minor things, nothing big
Ships:
What did you make? An Atom Simulator that visualises VSEPR theory — a chemistry concept I was studying in 11th grade that explains how atoms arrange themselves when forming compounds. I gave each particle a repulsive force and used some physics where atoms naturally settle into the same structures VSEPR predicts. What was challenging? Two things: The radial force, getting particles to stay on the sphere surface without snapping or drifting took a lot of tuning (damping constants, partial normalisation, force scaling) 2.Dynamic bond drawing, since particles move every frame, the cylinders connecting them have to be recalculated each frame, including figuring out which particles are close enough to be “bonded” and hiding the rest What are you proud of? I started by manually hard-coding forces between every pair of atoms, then refactored everything into loops and 2D lists, cutting the code down massively. I also pre-compute all the frames before the animation starts, so playback is smooth with no lag. To test it Use the GlowScript web version, it works in any browser instantly. If you run it locally, note that it freezes for ~30 seconds while pre-computing frames before the animation starts. That’s normal, not a crash.
HOW TO USE THE PROJECT ? : Enter the number of particles in the input box (1000 is a recommended number), hit Apply and watch the simulation run. Left click and drag to rotate, scroll to zoom. Hit Explanation for a full breakdown of how it works. I built a 3D molecular geometry simulator inspired by VSEPR theory from chemistry class using physics calculation, basically simulating how atoms arrange themselves through repulsion. V1 existed but had no controls and was written in VPython, so I learned Three.js from scratch, raw-dogging documentation the entire way. The challenging part was understanding how Three.js actually works while simultaneously figuring out the physics, forces, dampening, normalisation, cylinder connections between stable particles. The “magic numbers” problem was real problem too, tuning variables so the simulation looks correct and visually pleasing at the same time. But tbh, the writing the code turned out to be so confusing, it took me like 15 hours in total, where as I expected it to get finished in 2 hours, since I thought I was “just gonna translate some code from one language to another” Most proud of just finishing it honestly. When it finally worked, legendary doesn’t even cover it. IT WAS MORE THAN AMAZING....
|
1792846162.3351798
|
1792932562.3351798
|
|
35569
|
Vinland Saga OS by @AriDev24 | Stardance
|
AriDev24
|
2
|
28.0
|
15
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T18:50:08Z", "hours": 3.0, "multiplier": 5.24, "payout": 15, "blessing": "neutral", "text": "(Vinland Saga OS v0.6) is a Web-Based OS inspired by my favourite anime, Vinland Saga. It’s a Japanese animated series. It’s my first-ever Hack Club project and a first-ever fully working website. I Know there are still many bugs but I tried my best and I will improve it more. To be honest, I learned so many new things with this project, especially JavaScript. I have never written JS myself before, but you made me use it on my own. This is my WebOS 2 so in this WebOS 2 version i added and improved many things : The first thing I added is to open the gallery image in full screen when clicked. The second and best feature i added is to save whatever you write in notes so that every time you open it you can see and intract with your saved notes. The third and the fun feature i added is a random quote generator. I converted my single quote card to this quote generator. The fourth feature i added is that when you open the OS, you have to open the gallery manually like an app. I did this only with Gallery because it did not feel good to me as a widget on the screen. Soo Thats It, Bye…", "repo": "https://github.com/aridev24/Vinland-Saga-OS", "demo": "https://vinland-saga-os.vercel.app/"}, {"ship_num": 2, "ts": "2026-09-20T20:13:22Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Vinland Saga OS is a Web-Based OS inspired by my favourite anime, Vinland Saga. It’s a Japanese animated series. It’s my first-ever Hack Club project and a first-ever fully working website. I Know there are still many bugs but I tried my best and I will improve it more. To be honest, I learned so many new things with this project, especially JavaScript. I have never written JS myself before, but you made me use it on my own without AI, yea but i will be honest with you: there was a lil hidden bug in some 2 lines of JS, I tried my best to debug but at the end i asked copilot to tell me why this code is not working and it told me, the lines were swapped with each other, so then I debugged it.", "repo": "https://github.com/aridev24/Vinland-Saga-OS", "demo": "https://vinland-saga-os.vercel.app/"}]...
|
[{"post_id": 71889, "ts": "202 [{"post_id": 71889, "ts": "2026-09-21T18:19:14Z", "hours": 2.8381, "text": "(Vinland Saga OS v0.7) Added 4 new features. Today, in this, i added many new features to enhance the user experience, The first thing I added is to open the gallery image in full screen when clicked. The second and best feature i added is to save whatever you write in notes so that every time you open it you can see and intract with your saved notes. The third and the fun feature i added is a random quote generator. I converted my single quote card to this quote generator. The fourth feature i added is that when you open the OS, you have to open the gallery manually like an app. I did this only with Gallery because it did not feel good to me as a widget on the screen. Soo Thats It, Bye…"}, {"post_id": 71191, "ts": "2026-09-20T12:42:32Z", "hours": 1.2247, "text": "(Vinland Saga OS v0.6) Final polish has been completed and now i am finally shipping it. In the final polish i added Vikings Norse symbols to the OS and added more images to the gallery. Finding and editing the Norse symbols to match the theme took me too much time. Soo tell if something can be improved. BTW I’m going to ship it…😄"}, {"post_id": 70534, "ts": "2026-09-19T10:19:21Z", "hours": 8.4975, "text": "Finally Its Time To ship (Vinland Saga OS v0.5) Completed This Time i added many new features like opening and closing the windows/Apps, Actually my app are like widgets on screen, i also a pre loading screen, added more images to gallery and made a new beautiful clock widget. Now Its time for Just a final polish and Doneee…"}, {"post_id": 69306, "ts": "2026-09-16T19:31:34Z", "hours": 3.6294, "text": "Late Night New Features Update to Vinland Saga OS Today before adding new feature i thought to modify theme colors because they were looking boring so first i change the color, and then i started to add more features to my OS but i dont have any new feature idea after searching and thinking here and there i thought to add a song and a gallery, so first i downloaded a Vinland Saga opening song and some images stolen from Pinterest 😅, and start building the features and here the results are in front of you…(Please let me know I you like it😥) Now tomorrow i will add more features"}, {"post_id": 68762, "ts": "2026-09-15T18:14:07Z", "hours": 5.0728, "text": "Sooo… Finally New Features Added To Vinland Saga OS the most dangerous part was literally JavaScript 😭 Added a Side bar for apps icon and add a image at the top of it to make it look badass. Add a Quick Notes App that took me two Daaays because to make it draggable, open and close using java script ( Its my fist time of using Java script 😭) Still Adding new Apps and features 😉 (oh and also added a custom knife cursor but you cant see it in the screenshot)"}, {"post_id": 67937, "ts": "2026-09-14T07:59:02Z", "hours": 2.8878, "text": "Oh Finally now its far better than before after searching hours i found a perfect background for my OS, and i also changed the background color and text color of the pannels to make it look much better and match the theme. The most difficult part was choosing the theme color that will look perfect with the background and ancient theme, currently its not haiving much features but soon it will look greate with useful features (Maybe😅) oh and i fogot to tell that i also make some windows movable anywhere on screen"}, {"post_id": 67291, "ts": "2026-09-13T11:20:26Z", "hours": 3.7989, "text": "A Gift For Anime Fans, Building a Vinland Saga Web-Based OS"}]...
|
Title: Vinland Saga OS by @AriDev24 | Stardance
D Title: Vinland Saga OS by @AriDev24 | Stardance
Devlogs:
A Gift For Anime Fans, Building a Vinland Saga Web-Based OS
Oh Finally now its far better than before after searching hours i found a perfect background for my OS, and i also changed the background color and text color of the pannels to make it look much better and match the theme. The most difficult part was choosing the theme color that will look perfect with the background and ancient theme, currently its not haiving much features but soon it will look greate with useful features (Maybe😅) oh and i fogot to tell that i also make some windows movable anywhere on screen
Sooo… Finally New Features Added To Vinland Saga OS the most dangerous part was literally JavaScript 😭 Added a Side bar for apps icon and add a image at the top of it to make it look badass. Add a Quick Notes App that took me two Daaays because to make it draggable, open and close using java script ( Its my fist time of using Java script 😭) Still Adding new Apps and features 😉 (oh and also added a custom knife cursor but you cant see it in the screenshot)
Late Night New Features Update to Vinland Saga OS Today before adding new feature i thought to modify theme colors because they were looking boring so first i change the color, and then i started to add more features to my OS but i dont have any new feature idea after searching and thinking here and there i thought to add a song and a gallery, so first i downloaded a Vinland Saga opening song and some images stolen from Pinterest 😅, and start building the features and here the results are in front of you…(Please let me know I you like it😥) Now tomorrow i will add more features
Finally Its Time To ship (Vinland Saga OS v0.5) Completed This Time i added many new features like opening and closing the windows/Apps, Actually my app are like widgets on screen, i also a pre loading screen, added more images to gallery and made a new beautiful clock widget. Now Its time for Just a final polish and Doneee…
(Vinland Saga OS v0.6) Final polish has been completed and now i am finally shipping it. In the final polish i added Vikings Norse symbols to the OS and added more images to the gallery. Finding and editing the Norse symbols to match the theme took me too much time. Soo tell if something can be improved. BTW I’m going to ship it…😄
(Vinland Saga OS v0.7) Added 4 new features. Today, in this, i added many new features to enhance the user experience, The first thing I added is to open the gallery image in full screen when clicked. The second and best feature i added is to save whatever you write in notes so that every time you open it you can see and intract with your saved notes. The third and the fun feature i added is a random quote generator. I converted my single quote card to this quote generator. The fourth feature i added is that when you open the OS, you have to open the gallery manually like an app. I did this only with Gallery because it did not feel good to me as a widget on the screen. Soo Thats It, Bye…
Ships:
Vinland Saga OS is a Web-Based OS inspired by my favourite anime, Vinland Saga. It’s a Japanese animated series. It’s my first-ever Hack Club project and a first-ever fully working website. I Know there are still many bugs but I tried my best and I will improve it more. To be honest, I learned so many new things with this project, especially JavaScript. I have never written JS myself before, but you made me use it on my own without AI, yea but i will be honest with you: there was a lil hidden bug in some 2 lines of JS, I tried my best to debug but at the end i asked copilot to tell me why this code is not working and it told me, the lines were swapped with each other, so then I debugged it.
(Vinland Saga OS v0.6) is a Web-Based OS inspired by my favourite anime, Vinland Saga. It’s a Japanese animated series. It’s my first-ever Hack Club project and a first-ever fully working website. I Know there are still many bugs but I tried my best and I will improve it more. To be honest, I learned so many new things with this project, especially JavaScript. I have never written JS myself before, but you made me use it on my own. This is my WebOS 2 so in this WebOS 2 version i added and improved many things : The first thing I added is to open the gallery image in full screen when clicked. The second and best feature i added is to save whatever you write in notes so that every time you open it you can see and intract with your saved notes. The third and the fun feature i added is a random quote generator. I converted my single quote card to this quote generator. The fourth feature i added is that when you open the OS, you have to open the gallery manually like an app. I did this only with Gallery because it did not feel good to me as a widget on the screen. Soo Thats It, Bye…...
|
1792853590.5468652
|
1792939990.5468652
|
|
35670
|
My own site! by @numycode | Stardance
|
numycode
|
2
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-17T19:47:43Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I added 2 more pages to my HTML/CSS page for the personal site mission!", "repo": "https://github.com/numycode/personal-site-for-camp", "demo": "https://camp-site.numycode.dev/"}, {"ship_num": 2, "ts": "2026-07-15T18:18:12Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a HTML/CSS personal site! It was for Stardance Workshop #1.", "repo": "https://github.com/numycode/personal-site-for-camp", "demo": "https://camp-site.numycode.dev/"}]...
|
[{"post_id": 49156, "ts": "202 [{"post_id": 49156, "ts": "2026-08-17T19:46:26Z", "hours": 0.9844, "text": "Hi! I have added 2 more pages, each with text and and image! Here are they: About me My fav things I had inactive links going to “#” before with these names, but now I added actual pages. I utilized my CSS class “center”, “img-small” (500x700), and “img-small2” (700x500). These additions make the site much more interesting!"}, {"post_id": 29047, "ts": "2026-07-15T18:15:29Z", "hours": 0.9367, "text": "Changelog add readme ( c80125c ) worked on the site! day 1 ( bad552a ) init ( be73ccf ) init ( a6cbdf0 ) Initial commit ( a197941 ) Hi! This is my first day working on this site! I have added many things to this site already! I have added: A title Many links Jimmy in the box (lol) A cool image A navbar CSS gradient background I had some issues with CSS as I forgot to link the CSS file!"}]...
|
Title: My own site! by @numycode | Stardance
Devl Title: My own site! by @numycode | Stardance
Devlogs:
Changelog add readme ( c80125c ) worked on the site! day 1 ( bad552a ) init ( be73ccf ) init ( a6cbdf0 ) Initial commit ( a197941 ) Hi! This is my first day working on this site! I have added many things to this site already! I have added: A title Many links Jimmy in the box (lol) A cool image A navbar CSS gradient background I had some issues with CSS as I forgot to link the CSS file!
Hi! I have added 2 more pages, each with text and and image! Here are they: About me My fav things I had inactive links going to “#” before with these names, but now I added actual pages. I utilized my CSS class “center”, “img-small” (500x700), and “img-small2” (700x500). These additions make the site much more interesting!
Ships:
I made a HTML/CSS personal site! It was for Stardance Workshop #1.
I added 2 more pages to my HTML/CSS page for the personal site mission!...
|
1792828514.4140918
|
1792914914.4140918
|
|
35821
|
Decode Your Career Pathway by @TejalK | Stardance
|
TejalK
|
2
|
29.0
|
250
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T20:10:44Z", "hours": 24.0, "multiplier": 17.5, "payout": 209, "blessing": "neutral", "text": "The original version was a single big JavaScript file that handled everything - data, scoring, drawing, and clicks - on a fixed-size canvas. The upgrade splits that into clean, focused files: one for data, one for scoring, one for layout and responsive sizing, others for the quiz flow, results, sharing, comparing with friends, live job listings, and university rankings. It also adds polish like smooth transitions, progress saving, keyboard support, and a proper test harness, turning a working prototype into a much more flexible and feature-rich app.", "repo": "https://github.com/TejalK10-hash/Decode-your-Career-Pathway", "demo": "https://tubular-puppy-efbca7.netlify.app/"}, {"ship_num": 2, "ts": "2026-07-26T19:05:41Z", "hours": 5.0, "multiplier": 15.64, "payout": 41, "blessing": "neutral", "text": "I made Decode Your Career Pathway, a five-question quiz that matches users to one of 24 careers based on their subjects, interests, motivations, and personality, then shows them the degree path, specializations, and top universities for that field. The trickiest part was building the scoring system - balancing the weights so that answers across five different questions (one of them multi-select) combined fairly without any single career always floating to the top. Getting the scroll and screen-transition logic clean (quiz → results → detail view) took some trial and error too. I’m proudest of the detail screen, where each result breaks down into subjects to focus on, a degree to aim for, minors, and real universities - it feels like actual advice rather than just a random result. To test it: go through all five questions (you can go back and change answers), hit Finish to see your top 5 matches ranked by score, then click “View Details” on any card to see the full breakdown, and try scrolling the results list since it’s capped to stop right at the last card.", "repo": "https://github.com/TejalK10-hash/Decode-your-Career-Pathway", "demo": "https://tubular-puppy-efbca7.netlify.app/"}]...
|
[{"post_id": 49858, "ts": "202 [{"post_id": 49858, "ts": "2026-08-18T20:09:16Z", "hours": 1.9683, "text": "Added a step where the quiz asks which country you’re from and whether you want live job listings for your country or the existing Canadian data. If you opt in, it pulls live results for your country; if not (or if there’s nothing available), it falls back to the built-in Canadian dataset. Makes the quiz useful beyond a Canada-only audience without losing the reliable baseline for users who skip it. Also cleaned up a handful of small bugs along the way."}, {"post_id": 49356, "ts": "2026-08-18T04:13:48Z", "hours": 5.7775, "text": "TODAY’S WORK : API Integration - Indeed’s job API turned out to be sales-gated with no self-serve access, so pivoted to Adzuna (free, self-serve). Wired up live job postings per career on the detail screen, with caching and graceful loading/error states. Also added a country-selection step before the quiz so postings can be localized, plus fixed a couple of rendering bugs that came with it. Share Result - Added a “Share Result” button that generates a downloadable PNG summary card and copies a shareable link. Answers are encoded straight into the URL, so results travel with zero backend. Compare with a Friend - New stretch feature built on the share-link encoding. Paste a friend’s link, we decode and recompute their results, then show a side-by-side comparison with overlapping matches highlighted."}, {"post_id": 48567, "ts": "2026-08-17T00:36:55Z", "hours": 5.3172, "text": "Big polish day. Replaced hardcoded pixel positions with a percentage-based layout and made the canvas actually resize instead of being stuck at 1520×730. Added keyboard navigation (arrows + Enter) and in-memory progress persistence with a “resume quiz?” prompt so closing the tab doesn’t wipe everything."}, {"post_id": 47767, "ts": "2026-08-15T22:24:16Z", "hours": 5.3658, "text": "Wired yesterday’s scoring work into the detail screen - you now see a confidence badge and a line like “You matched because you value Impact + chose Science” instead of just a bare result. Also wrote day-in-the-life blurbs for all 24 careers and added a related-careers section (Software Engineer -> Data Scientist, etc.) so the quiz doesn’t dead-end at your top match."}, {"post_id": 47228, "ts": "2026-08-15T00:31:47Z", "hours": 5.4089, "text": "Split the quiz out of one giant file into data.js, quiz.js, scoring.js, render.js, with a basic test harness for calculateResults(). Then fixed the actual scoring bug: careers used to win on being consistently “meh” across every question instead of nailing a couple of perfect matches. Added a bonus for 3/3 scores on 2+ questions, confidence labels (“Strong Match” / “Worth Exploring”), and tracking for which questions drove each career’s score."}, {"post_id": 35382, "ts": "2026-07-26T19:01:56Z", "hours": 2.01, "text": "Built out the results screen (ranked cards with match score, salary, outlook) and a detail view for digging into one career fully - subjects, degree, specializations, and top universities."}, {"post_id": 34773, "ts": "2026-07-25T19:18:23Z", "hours": 1.0375, "text": "Wired up the actual quiz - question progression, single vs. multi-select handling, and a scoring function that totals weighted points per career and sorts for the top 5 matches. Also added a university lookup table mapped by field, so the results screen can suggest real schools per career."}, {"post_id": 34731, "ts": "2026-07-25T18:03:33Z", "hours": 1.1372, "text": "Before touching any UI, put together the career list - 24 careers across Medicine, Technology, Business, Engineering, Law, Education, and a few others. Each one has salary range, outlook, recommended subjects, degree, and specializations. Then built a scoring table: every career gets weighted values across all 5 quiz questions, so answers aren’t just matched to one “type” - they add up across multiple signals (subjects, interests, motivation, study length, work style)."}, {"post_id": 29275, "ts": "2026-07-16T02:50:26Z", "hours": 0.9867, "text": "Started this because I kept noticing how scattered career research actually is — subject requirements in one place, degree info in another, salary data somewhere else, university rankings somewhere else entirely. Wanted something that pulls all of that into one quick interactive tool instead of 10 open tabs. Plan: a short quiz (5 questions) that scores your answers against a list of careers, then shows your top matches with everything you’d need to know — subjects to focus on now, degree to aim for, and where to study it."}]...
|
Title: Decode Your Career Pathway by @TejalK | Sta Title: Decode Your Career Pathway by @TejalK | Stardance
Devlogs:
Started this because I kept noticing how scattered career research actually is — subject requirements in one place, degree info in another, salary data somewhere else, university rankings somewhere else entirely. Wanted something that pulls all of that into one quick interactive tool instead of 10 open tabs. Plan: a short quiz (5 questions) that scores your answers against a list of careers, then shows your top matches with everything you’d need to know — subjects to focus on now, degree to aim for, and where to study it.
Before touching any UI, put together the career list - 24 careers across Medicine, Technology, Business, Engineering, Law, Education, and a few others. Each one has salary range, outlook, recommended subjects, degree, and specializations. Then built a scoring table: every career gets weighted values across all 5 quiz questions, so answers aren’t just matched to one “type” - they add up across multiple signals (subjects, interests, motivation, study length, work style).
Wired up the actual quiz - question progression, single vs. multi-select handling, and a scoring function that totals weighted points per career and sorts for the top 5 matches. Also added a university lookup table mapped by field, so the results screen can suggest real schools per career.
Built out the results screen (ranked cards with match score, salary, outlook) and a detail view for digging into one career fully - subjects, degree, specializations, and top universities.
Split the quiz out of one giant file into data.js, quiz.js, scoring.js, render.js, with a basic test harness for calculateResults(). Then fixed the actual scoring bug: careers used to win on being consistently “meh” across every question instead of nailing a couple of perfect matches. Added a bonus for 3/3 scores on 2+ questions, confidence labels (“Strong Match” / “Worth Exploring”), and tracking for which questions drove each career’s score.
Wired yesterday’s scoring work into the detail screen - you now see a confidence badge and a line like “You matched because you value Impact + chose Science” instead of just a bare result. Also wrote day-in-the-life blurbs for all 24 careers and added a related-careers section (Software Engineer -> Data Scientist, etc.) so the quiz doesn’t dead-end at your top match.
Big polish day. Replaced hardcoded pixel positions with a percentage-based layout and made the canvas actually resize instead of being stuck at 1520×730. Added keyboard navigation (arrows + Enter) and in-memory progress persistence with a “resume quiz?” prompt so closing the tab doesn’t wipe everything.
TODAY’S WORK : API Integration - Indeed’s job API turned out to be sales-gated with no self-serve access, so pivoted to Adzuna (free, self-serve). Wired up live job postings per career on the detail screen, with caching and graceful loading/error states. Also added a country-selection step before the quiz so postings can be localized, plus fixed a couple of rendering bugs that came with it. Share Result - Added a “Share Result” button that generates a downloadable PNG summary card and copies a shareable link. Answers are encoded straight into the URL, so results travel with zero backend. Compare with a Friend - New stretch feature built on the share-link encoding. Paste a friend’s link, we decode and recompute their results, then show a side-by-side comparison with overlapping matches highlighted.
Added a step where the quiz asks which country you’re from and whether you want live job listings for your country or the existing Canadian data. If you opt in, it pulls live results for your country; if not (or if there’s nothing available), it falls back to the built-in Canadian dataset. Makes the quiz useful beyond a Canada-only audience without losing the reliable baseline for users who skip it. Also cleaned up a handful of small bugs along the way.
Ships:
I made Decode Your Career Pathway, a five-question quiz that matches users to one of 24 careers based on their subjects, interests, motivations, and personality, then shows them the degree path, specializations, and top universities for that field. The trickiest part was building the scoring system - balancing the weights so that answers across five different questions (one of them multi-select) combined fairly without any single career always floating to the top. Getting the scroll and screen-transition logic clean (quiz → results → detail view) took some trial and error too. I’m proudest of the detail screen, where each result breaks down into subjects to focus on, a degree to aim for, minors, and real universities - it feels like actual advice rather than just a random result. To test it: go through all five questions (you can go back and change answers), hit Finish to see your top 5 matches ranked by score, then click “View Details” on any card to see the full breakdown, and try scrolling the results list since it’s capped to stop right at the last card.
The original version was a single big JavaScript file that handled everything - data, scoring, drawing, and clicks - on a fixed-size canvas. The upgrade splits that into clean, focused files: one for data, one for scoring, one for layout and responsive sizing, others for the quiz flow, results, sharing, comparing with friends, live job listings, and university rankings. It also adds polish like smooth transitions, progress saving, keyboard support, and a proper test harness, turning a working prototype into a much more flexible and feature-rich app....
|
1792878668.6985564
|
1793742668.6985564
|
|
35875
|
tundra by @pinetree182 | Stardance
|
pinetree182
|
2
|
21.0
|
205
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T01:39:49Z", "hours": 18.0, "multiplier": 11.42, "payout": 205, "blessing": "neutral", "text": "tundra OS i made a web OS called tundra. visually, it’s really similar to Serenity OS and it was a whole lot of fun to make. features lots of apps, like a browser, text editor, and file browser a working(ish) filesystem a whole dialog system 3d graphics elite references", "repo": "https://github.com/annaxiomm/tundra", "demo": "https://annaxiomm.github.io/tundra"}, {"ship_num": 2, "ts": "2026-07-17T08:46:49Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "tundra v0.1.0 (alpha) tundra is finally ready to release! it’s currently very much in its infancy and doesn’t have very many features but it meets the requirements of the ship and i’m proud of it! so far we have: multiple draggable windows that are instanceable and defined as classes in javascript (so you can open more than one of the same app!) a welcome message, notes app (which is really an editable changelog), and a nice assortment of images for you to look at a status bar with the date and a handy app drawer so you can access all (3 of) the cool apps on display! a beautiful font (cozette by the-moonwitch) i hope you all like it so far, and plenty more features will follow in the coming weeks", "repo": "https://github.com/annaxiomm/tundra", "demo": "https://annaxiomm.github.io/tundra"}]...
|
[{"post_id": 63300, "ts": "202 [{"post_id": 63300, "ts": "2026-09-07T01:36:33Z", "hours": 3.1278, "text": "devlog #12 - the end? (for now) this is going to be my last devlog before I ship tundra, i’m really proud of how far it’s come and the fact that i’ve actually managed to finish a project for once! I didn’t quite get to add everything I wanted but most of it is there text editor time! i added a real simple text editor that can save and load files from the “disk”. i don’t really have anything else to say about it rated D for dialogs in order for the text editor to work properly, I had to make save and open dialog boxes. these are basically an unholy frankenstein of the normal dialog box and the file browser app, and they work well enough object permanence using JSON and the world’s jankiest serialization/deserialization system I was able to save the user’s filesystem state to localStorage so that even of you reload or close the page, your precious writing will be preserved you’re getting the boot real operating systems don’t open straight to the desktop - theres a whole boot sequence that leads to this (and if you’re cool and use linux it’s all on display for you). inspired by @cooki ’s FPS-OS (go check it out it’s really cool) i added a boot screen that looks pretty alright I guess. visual imagery finally, I got around to adding icons for each app. they’re 16x16, made in aseprite over the course of about 10 minutes, and work just enough that I don’t need to redesign them constantly. next steps ship it!"}, {"post_id": 61451, "ts": "2026-09-04T11:45:40Z", "hours": 0.8858, "text": "devlog #11 - ctrl+alt+delete this is a bit of a shorter devlog since I basically only added one thing - a functioning shutdown sequence! first a little dialog pops up asking if you’re sure, and then the whole screen goes black and says “shutting down…”, finally followed by an elite reference (Progressbar95 players rise up!)"}, {"post_id": 57784, "ts": "2026-08-30T02:28:02Z", "hours": 3.5117, "text": "devlog #10 - new apps after like a month-long hiatus i thought that i ought to add a few more apps - this is meant to be somewhat useful after all! calculator this is a really basic calculator app, basically when you press a button it adds its value (like 2 or + or . ) to an expression, and when you hit the = button it evaluates the expression with eval() . yes, i know its not the safest but it works. colo(u)r picker this one is also really simple: every time you press a key on your keyboard, a new random colour is generated and the rgb and hex values are shown in the bottom. need i say more? file explorer once again, this is really basic. all it does is gets the contents of the current directory (i had to make a new fs function to return each path’s type as well) and then makes a new element for each path with an icon corresponding to what it is. there’s also a back button if you need to… well.. go back next steps file opening from the file explorer text editor more functions in the calculator / better calculator"}, {"post_id": 41048, "ts": "2026-08-05T00:17:34Z", "hours": 3.0744, "text": "devlog #9 - files! what’s an operating system if you can’t have files? so, i decided to write a basic filesystem for tundra. paired with a simple terminal and now tundra is actually kind of cool! the filesystem tundra uses a really simple filesystem model: there’s a File and a Directory class that both inherit from FSNode, Files have names and contents and Directories have names and children. tundra uses a traditional unix file layout (/home, /bin, /etc and so on) because its cool. the terminal i really wanted some way to navigate the filesystem but didn’t feel like implementing an entire file browser so I added a simple terminal. it has a few methods like writeln and readline which you can use. all the commands (including the shell!) are defined in their own classes, just like apps, which makes it really easy to add new ones. so far, i’ve added cd, ls, mkdir, touch, cat, and my own version of neofetch. next steps an actual file browser some more commands ANSI escape codes for colours a text editor to make files for the filesystem"}, {"post_id": 39219, "ts": "2026-08-02T01:30:03Z", "hours": 3.3094, "text": "devlog #8 - too many changes! my devlogs from here on are going to be getting a lot longer now because i’m really settling into the grind, so i’m going to try out a more structured format. dialogs! i implemented a whole dialog box system into caribou (the window manager). so far it only has confirm (cancel/ok) style dialogs but it’s modular so i’ll be sure to add plenty more in the future. dialogs return promises that resolve with a value when an action happens (like when the dialog is closed), and this can then be used to execute code. this all came about because i wanted to add fullscreen mode but apparently browsers don’t like it when you request fullscreen without user interaction so here we are! changelog changes (?) the changelog, as promised, pulls directly from github to ensure you always get the most up-to-date changes with minimal effort on my end ! it uses marked and DOMPurify to parse the CHANGELOG.md from the repo and to make sure you are personally secure from anyone who’s dumb enough to waste their time trying to attack tundra. preparing for themes soon, i’ll work on adding themes to tundra so i decided i’d make it a bit easier for myself by making every single value that might want to be changed in css a variable. this was excruciatingly painful but we got through it in the end (it took like 10 minutes max). also, the background is now loaded dynamically through js which will lead to custom backgrounds at some point (much to the dismay of my browser’s performance) next steps improve the dialog system and add more dialog types add a filesystem (very scary) add more apps add theming and changeable backgrounds"}, {"post_id": 36136, "ts": "2026-07-28T00:56:50Z", "hours": 1.6256, "text": "devlog #7 - now we’re getting somewhere! tundra is starting to take off! i’ve changed the look of the taskbar very slightly (there’s now more padding), and i’ve also revamped the appdrawer so that it looks cleaner (and more like SerenityOS). also, submenus! now the appdrawer can be more organised as I continue to add apps instead of turning into a wastebin of buttons. i deleted all of the original apps and have replaced them with (so far) an updated welcome/about (with wally, the derpy walrus who’s tundra’s new mascot), a proper changelog (eventually i’ll make it pull from github but for now it’s hardcoded), and a cube to test out threejs."}, {"post_id": 32283, "ts": "2026-07-21T11:04:31Z", "hours": 1.3792, "text": "devlog #6 - more taskbar stuff i decided that it’s probably a good idea to be able to see what apps you have open, so i implemented a little window list in the status bar. it’s pretty rudimentary - it just makes an element for each open window and updates any time a window is added or removed. eventually i’ll get around to adding window logos and context menus that let you close and minimise windows from the taskbar but that’s a bit advanced for the minute."}, {"post_id": 30070, "ts": "2026-07-17T11:10:55Z", "hours": 1.0528, "text": "devlog #5 - visual updates i decided i wanted to make tundra look a bit like serenityOS, so i modified the window header to include the distinctive red gradient. i also added a proper focusing system which required a decent rewrite of a portion of caribou (the wm). also, i worked on centralising the wm. previously, windows handled their own focusing and closing but since i’ve discovered customevents windows now request this behaviour from the wm. finally, windows now auto-focus when you open them!"}, {"post_id": 30022, "ts": "2026-07-17T08:30:14Z", "hours": 1.1878, "text": "devlog #4 - almost time to ship ! after much tedious work i added 2 other apps: a notes app that currently has a small TODO list and a changelog; and an image viewer that shows off a random image i’ve taken. i’ve also prettied the whole thing up a little bit by changing the font from [default] to Cozette, a nice cozy bitmap-ish font. finally, i added an app drawer so you can open all the (3) apps available in v0.1.0! i’m really looking forward to adding tons of new features and making it look super awesome!"}, {"post_id": 29369, "ts": "2026-07-16T08:39:15Z", "hours": 0.5478, "text": "devlog #3 - windows (again!) windows and apps are now instanced and defined purely in their own classes in javascript instead of being predefined in HTML and shown / hidden. i know it’s not strictly part of the mission for WebOS 1 but it makes me feel a bit better about myself AND it’ll make things a whole lot easier for me down the line. since apps are instanced, i can have as many welcomes as i want !"}, {"post_id": 29355, "ts": "2026-07-16T07:46:35Z", "hours": 0.9558, "text": "devlog #2 - windows i started working on the first iteration of caribou - tundra’s window manager (aka a window class and a list of open windows). so far, windows can be dragged around using some very janky freestyled code, and can also be closed (one of the can even be opened again !). it’s currently looking quite… webby , so next i’ll probably work on making it look a bit more personal (maybe a bit like my personal homepage??)"}, {"post_id": 29335, "ts": "2026-07-16T06:41:18Z", "hours": 0.5217, "text": "devlog #1 - let’s make an OS (sort of) ! building my own OS has been a dream of mine for a long, long time but i’ve never actually been able to make one before (because i know next to nothing about low-level programming). so imagine my reaction when i saw that i could get 50 stardust for making one? well, one small catch. it had to be a web-based OS. wait, is that really a catch though? its like a thousand times easier, and has just enough instant gratification for my short-form content-fried dopamine-addicted brain. so here we are. so far, tundra has a window and a status bar, and thats about it (also, the wallpaper is a photo i took down at the beach today !). i’m really looking forward to adding a ton more features to tundra in the future."}]...
|
Title: tundra by @pinetree182 | Stardance
Devlogs Title: tundra by @pinetree182 | Stardance
Devlogs:
devlog #1 - let’s make an OS (sort of) ! building my own OS has been a dream of mine for a long, long time but i’ve never actually been able to make one before (because i know next to nothing about low-level programming). so imagine my reaction when i saw that i could get 50 stardust for making one? well, one small catch. it had to be a web-based OS. wait, is that really a catch though? its like a thousand times easier, and has just enough instant gratification for my short-form content-fried dopamine-addicted brain. so here we are. so far, tundra has a window and a status bar, and thats about it (also, the wallpaper is a photo i took down at the beach today !). i’m really looking forward to adding a ton more features to tundra in the future.
devlog #2 - windows i started working on the first iteration of caribou - tundra’s window manager (aka a window class and a list of open windows). so far, windows can be dragged around using some very janky freestyled code, and can also be closed (one of the can even be opened again !). it’s currently looking quite… webby , so next i’ll probably work on making it look a bit more personal (maybe a bit like my personal homepage??)
devlog #3 - windows (again!) windows and apps are now instanced and defined purely in their own classes in javascript instead of being predefined in HTML and shown / hidden. i know it’s not strictly part of the mission for WebOS 1 but it makes me feel a bit better about myself AND it’ll make things a whole lot easier for me down the line. since apps are instanced, i can have as many welcomes as i want !
devlog #4 - almost time to ship ! after much tedious work i added 2 other apps: a notes app that currently has a small TODO list and a changelog; and an image viewer that shows off a random image i’ve taken. i’ve also prettied the whole thing up a little bit by changing the font from [default] to Cozette, a nice cozy bitmap-ish font. finally, i added an app drawer so you can open all the (3) apps available in v0.1.0! i’m really looking forward to adding tons of new features and making it look super awesome!
devlog #5 - visual updates i decided i wanted to make tundra look a bit like serenityOS, so i modified the window header to include the distinctive red gradient. i also added a proper focusing system which required a decent rewrite of a portion of caribou (the wm). also, i worked on centralising the wm. previously, windows handled their own focusing and closing but since i’ve discovered customevents windows now request this behaviour from the wm. finally, windows now auto-focus when you open them!
devlog #6 - more taskbar stuff i decided that it’s probably a good idea to be able to see what apps you have open, so i implemented a little window list in the status bar. it’s pretty rudimentary - it just makes an element for each open window and updates any time a window is added or removed. eventually i’ll get around to adding window logos and context menus that let you close and minimise windows from the taskbar but that’s a bit advanced for the minute.
devlog #7 - now we’re getting somewhere! tundra is starting to take off! i’ve changed the look of the taskbar very slightly (there’s now more padding), and i’ve also revamped the appdrawer so that it looks cleaner (and more like SerenityOS). also, submenus! now the appdrawer can be more organised as I continue to add apps instead of turning into a wastebin of buttons. i deleted all of the original apps and have replaced them with (so far) an updated welcome/about (with wally, the derpy walrus who’s tundra’s new mascot), a proper changelog (eventually i’ll make it pull from github but for now it’s hardcoded), and a cube to test out threejs.
devlog #8 - too many changes! my devlogs from here on are going to be getting a lot longer now because i’m really settling into the grind, so i’m going to try out a more structured format. dialogs! i implemented a whole dialog box system into caribou (the window manager). so far it only has confirm (cancel/ok) style dialogs but it’s modular so i’ll be sure to add plenty more in the future. dialogs return promises that resolve with a value when an action happens (like when the dialog is closed), and this can then be used to execute code. this all came about because i wanted to add fullscreen mode but apparently browsers don’t like it when you request fullscreen without user interaction so here we are! changelog changes (?) the changelog, as promised, pulls directly from github to ensure you always get the most up-to-date changes with minimal effort on my end ! it uses marked and DOMPurify to parse the CHANGELOG.md from the repo and to make sure you are personally secure from anyone who’s dumb enough to waste their time trying to attack tundra. preparing for themes soon, i’ll work on adding themes to tundra so i decided i’d make it a bit easier for myself by making every single value that might want to be changed in css a variable. this was excruciatingly painful but we got through it in the end (it took like 10 minutes max). also, the background is now loaded dynamically through js which will lead to custom backgrounds at some point (much to the dismay of my browser’s performance) next steps improve the dialog system and add more dialog types add a filesystem (very scary) add more apps add theming and changeable backgrounds
devlog #9 - files! what’s an operating system if you can’t have files? so, i decided to write a basic filesystem for tundra. paired with a simple terminal and now tundra is actually kind of cool! the filesystem tundra uses a really simple filesystem model: there’s a File and a Directory class that both inherit from FSNode, Files have names and contents and Directories have names and children. tundra uses a traditional unix file layout (/home, /bin, /etc and so on) because its cool. the terminal i really wanted some way to navigate the filesystem but didn’t feel like implementing an entire file browser so I added a simple terminal. it has a few methods like writeln and readline which you can use. all the commands (including the shell!) are defined in their own classes, just like apps, which makes it really easy to add new ones. so far, i’ve added cd, ls, mkdir, touch, cat, and my own version of neofetch. next steps an actual file browser some more commands ANSI escape codes for colours a text editor to make files for the filesystem
devlog #10 - new apps after like a month-long hiatus i thought that i ought to add a few more apps - this is meant to be somewhat useful after all! calculator this is a really basic calculator app, basically when you press a button it adds its value (like 2 or + or . ) to an expression, and when you hit the = button it evaluates the expression with eval() . yes, i know its not the safest but it works. colo(u)r picker this one is also really simple: every time you press a key on your keyboard, a new random colour is generated and the rgb and hex values are shown in the bottom. need i say more? file explorer once again, this is really basic. all it does is gets the contents of the current directory (i had to make a new fs function to return each path’s type as well) and then makes a new element for each path with an icon corresponding to what it is. there’s also a back button if you need to… well.. go back next steps file opening from the file explorer text editor more functions in the calculator / better calculator
devlog #11 - ctrl+alt+delete this is a bit of a shorter devlog since I basically only added one thing - a functioning shutdown sequence! first a little dialog pops up asking if you’re sure, and then the whole screen goes black and says “shutting down…”, finally followed by an elite reference (Progressbar95 players rise up!)
devlog #12 - the end? (for now) this is going to be my last devlog before I ship tundra, i’m really proud of how far it’s come and the fact that i’ve actually managed to finish a project for once! I didn’t quite get to add everything I wanted but most of it is there text editor time! i added a real simple text editor that can save and load files from the “disk”. i don’t really have anything else to say about it rated D for dialogs in order for the text editor to work properly, I had to make save and open dialog boxes. these are basically an unholy frankenstein of the normal dialog box and the file browser app, and they work well enough object permanence using JSON and the world’s jankiest serialization/deserialization system I was able to save the user’s filesystem state to localStorage so that even of you reload or close the page, your precious writing will be preserved you’re getting the boot real operating systems don’t open straight to the desktop - theres a whole boot sequence that leads to this (and if you’re cool and use linux it’s all on display for you). inspired by @cooki ’s FPS-OS (go check it out it’s really cool) i added a boot screen that looks pretty alright I guess. visual imagery finally, I got around to adding icons for each app. they’re 16x16, made in aseprite over the course of about 10 minutes, and work just enough that I don’t need to redesign them constantly. next steps ship it!
Ships:
tundra v0.1.0 (alpha) tundra is finally ready to release! it’s currently very much in its infancy and doesn’t have very many features but it meets the requirements of the ship and i’m proud of it! so far we have: multiple draggable windows that are instanceable and defined as classes in javascript (so you can open more than one of the same app!) a welcome message, notes app (which is really an editable changelog), and a nice assortment of images for you to look at a status bar with the date and a handy app drawer so you can access all (3 of) the cool apps on display! a beautiful font (cozette by the-moonwitch) i hope you all like it so far, and plenty more features will follow in the coming weeks
tundra OS i made a web OS called tundra. visually, it’s really similar to Serenity OS and it was a whole lot of fun to make. features lots of apps, like a browser, text editor, and file browser a working(ish) filesystem a whole dialog system 3d graphics elite references...
|
1792824628.86654
|
1792911028.86654
|
|
35978
|
Quick, Timer's UP! by @ishanmeher09 | Stardanc Quick, Timer's UP! by @ishanmeher09 | Stardance...
|
ishanmeher09
|
2
|
31.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-10T22:25:11Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a collection of fast paced minigames. And this is my second version. The first version had two minigames, a platformer game and a clicker game, but for my second version, I added two more, and they’re a bit more interesting. I added a seesaw game, and it has blocks that randomly spawn at different locations on the plank, and the player has to select a weight and click at different spots to balance it out. Before there was a way to exploit how it works, and click below the plank so the plank would never hit the ground, but you can’t do that anymore. Basically the plank can’t touch the ground until the timer ends. I then added a launcher game, and it has a target that moves back and forth, and the player needs to click and hold or hold spacebar to settle on a power for the shot, and use the mouse to aim the barrel. They need to hit the target before the timer ends. Also, now the timer doesn’t start until the one word instructions on each game fade. Those are the main differences, along with the pause menu, and yeah!", "repo": "https://github.com/whatisupyo12/WarioWareGame/", "demo": "https://2002-2.itch.io/quick-timers-up"}, {"ship_num": 2, "ts": "2026-09-29T23:41:25Z", "hours": 20.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a collection of fast paced minigames, but added my own personal design choices and sprites I made too. It took me a while, because I had a lot of bugs that needed fixing, but it works now. I added a player sprite that has animations, and also worked on my finished screen so it has confetti (yay). My death screen’s pretty basic though. In general for now, it works, and I’ll probably be adding more soon.", "repo": "https://github.com/whatisupyo12/WarioWareGame/", "demo": "https://2002-2.itch.io/quick-timers-up"}]...
|
[{"post_id": 78475, "ts": "202 [{"post_id": 78475, "ts": "2026-10-10T21:59:29Z", "hours": 7.7939, "text": "I finished my fourth minigame and final, a launcher minigame, where the player has to hold down click or space while aiming the cannon, in order to hit the target and win. I also completed third minigame too, the balancing one (I forgot to devlog it, oops). It’s a seesaw minigame, and basically weights fall and how have to balance the seesaw by selecting different weights and dropping them. It now has weight labels which it didnt have earlier, and weights automatically spawn now, when initially it just had two blocks that would cause a tilt."}, {"post_id": 77117, "ts": "2026-10-05T17:43:48Z", "hours": 2.83, "text": "Worked on a functional pause screen that goes back to menu or can resume game, took a while since I wasnt able to figure out why I couldn’t do some of the functions to hide the pause panel within one function, but if it works, it works."}, {"post_id": 75403, "ts": "2026-09-29T23:37:30Z", "hours": 1.675, "text": "I finished tweaking all the bugs, and my game is ready to ship with my two current minigames."}, {"post_id": 75222, "ts": "2026-09-29T14:43:25Z", "hours": 7.9036, "text": "Finished an ending/lose scene, and finished all minigames, I’m probably just going to start working on more minigames now."}, {"post_id": 74906, "ts": "2026-09-28T15:57:57Z", "hours": 7.665, "text": "Finished both minigames and now I’ll be working on the final ending scene as in a custom win/loss"}, {"post_id": 73432, "ts": "2026-09-25T02:33:21Z", "hours": 2.5306, "text": "Working on Game UI, and its functional and works now, also made sprites"}]...
|
Title: Quick, Timer's UP! by @ishanmeher09 | S Title: Quick, Timer's UP! by @ishanmeher09 | Stardance
Devlogs:
Working on Game UI, and its functional and works now, also made sprites
Finished both minigames and now I’ll be working on the final ending scene as in a custom win/loss
Finished an ending/lose scene, and finished all minigames, I’m probably just going to start working on more minigames now.
I finished tweaking all the bugs, and my game is ready to ship with my two current minigames.
Worked on a functional pause screen that goes back to menu or can resume game, took a while since I wasnt able to figure out why I couldn’t do some of the functions to hide the pause panel within one function, but if it works, it works.
I finished my fourth minigame and final, a launcher minigame, where the player has to hold down click or space while aiming the cannon, in order to hit the target and win. I also completed third minigame too, the balancing one (I forgot to devlog it, oops). It’s a seesaw minigame, and basically weights fall and how have to balance the seesaw by selecting different weights and dropping them. It now has weight labels which it didnt have earlier, and weights automatically spawn now, when initially it just had two blocks that would cause a tilt.
Ships:
I made a collection of fast paced minigames, but added my own personal design choices and sprites I made too. It took me a while, because I had a lot of bugs that needed fixing, but it works now. I added a player sprite that has animations, and also worked on my finished screen so it has confetti (yay). My death screen’s pretty basic though. In general for now, it works, and I’ll probably be adding more soon.
I made a collection of fast paced minigames. And this is my second version. The first version had two minigames, a platformer game and a clicker game, but for my second version, I added two more, and they’re a bit more interesting. I added a seesaw game, and it has blocks that randomly spawn at different locations on the plank, and the player has to select a weight and click at different spots to balance it out. Before there was a way to exploit how it works, and click below the plank so the plank would never hit the ground, but you can’t do that anymore. Basically the plank can’t touch the ground until the timer ends. I then added a launcher game, and it has a target that moves back and forth, and the player needs to click and hold or hold spacebar to settle on a power for the shot, and use the mouse to aim the barrel. They need to hit the target before the timer ends. Also, now the timer doesn’t start until the one word instructions on each game fade. Those are the main differences, along with the pause menu, and yeah!...
|
1792853618.6409125
|
1792940018.6409125
|
|
36016
|
My very own WebOS by @RajanKC | Stardance
|
RajanKC
|
2
|
17.0
|
72
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-07T17:15:25Z", "hours": 14.0, "multiplier": 5.0, "payout": 72, "blessing": "neutral", "text": "OS-Web is a lightweight, open-source web operating system built with HTML, CSS, and JavaScript. It brings a desktop-style experience to your browser with apps, a taskbar, and a simple interface that you can explore, customize, and improve.", "repo": "https://github.com/RajanKCKC/OSWeb", "demo": "https://rajankckc.github.io/OSWeb/"}, {"ship_num": 2, "ts": "2026-07-20T16:04:47Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Shipped WebOS. Built a basic browser desktop clone with HTML, CSS, and JS. It has a taskbar, a welcome window, windows you can drag around with working close buttons, and a simple notes app that opens when clicked.", "repo": "https://github.com/RajanKCKC/OSWeb", "demo": "https://rajankckc.github.io/OSWeb/"}]...
|
[{"post_id": 42760, "ts": "202 [{"post_id": 42760, "ts": "2026-08-07T17:14:29Z", "hours": 1.3003, "text": "Add Password Strength Meter app with UI, functionality, and integrate into main interface"}, {"post_id": 42077, "ts": "2026-08-06T17:12:25Z", "hours": 1.4725, "text": "Add Github User Finder app with UI, functionality, and integrate into main interface"}, {"post_id": 41382, "ts": "2026-08-05T15:43:36Z", "hours": 0.6836, "text": "Add QR Code Generator app with UI, functionality, and integrate into main interface"}, {"post_id": 40757, "ts": "2026-08-04T14:28:26Z", "hours": 1.1311, "text": "Add Tic Tac Toe app with UI, functionality, and integrate into main interface"}, {"post_id": 40211, "ts": "2026-08-03T16:49:51Z", "hours": 1.1114, "text": "Add ToDo app with UI, functionality, and integrate into main interface"}, {"post_id": 39521, "ts": "2026-08-02T15:07:58Z", "hours": 0.6947, "text": "Add Quiz app with UI, functionality, and integrate into main interface"}, {"post_id": 38986, "ts": "2026-08-01T16:44:01Z", "hours": 0.6003, "text": "Add Map app with UI, functionality, and integrate into main interface"}, {"post_id": 38296, "ts": "2026-07-31T16:45:57Z", "hours": 0.5333, "text": "Add Notes app with UI and integrate into main interface"}, {"post_id": 37658, "ts": "2026-07-30T15:28:48Z", "hours": 1.0669, "text": "Add Calendar app with UI, functionality, and integrate into main interface"}, {"post_id": 37116, "ts": "2026-07-29T16:30:18Z", "hours": 1.4522, "text": "Add Calculator, Paint app, and Welcome page with associated styles and functionality"}, {"post_id": 36450, "ts": "2026-07-28T16:05:34Z", "hours": 0.7019, "text": "Add Paint app with UI elements and window controls"}, {"post_id": 35564, "ts": "2026-07-27T02:56:29Z", "hours": 0.4669, "text": "Add welcome page and style adjustments for improved layout"}, {"post_id": 35318, "ts": "2026-07-26T17:14:11Z", "hours": 0.4792, "text": "Add Google app functionality with UI elements and window controls"}, {"post_id": 34668, "ts": "2026-07-25T16:03:57Z", "hours": 0.5169, "text": "Fix minimize button IDs for Notes and Solitaire, and implement taskbar item management"}, {"post_id": 34124, "ts": "2026-07-24T16:48:43Z", "hours": 0.3206, "text": "Add minimize functionality to Notes, Minecraft, and Solitaire windows"}, {"post_id": 33446, "ts": "2026-07-23T12:27:23Z", "hours": 0.9111, "text": "Implement maximize functionality for app windows and update styles"}, {"post_id": 33062, "ts": "2026-07-22T17:11:41Z", "hours": 0.3669, "text": "Add Solitaire app functionality with UI elements and window controls"}, {"post_id": 32436, "ts": "2026-07-21T16:45:42Z", "hours": 0.5339, "text": "Add Minecraft app icon and window functionality with styles"}, {"post_id": 31856, "ts": "2026-07-20T15:59:49Z", "hours": 0.7336, "text": "Update README, enhance UI, and improve functionality"}, {"post_id": 31326, "ts": "2026-07-19T16:58:18Z", "hours": 1.2972, "text": "Add Notes app functionality with UI elements and styles"}, {"post_id": 30614, "ts": "2026-07-18T10:26:52Z", "hours": 0.7039, "text": "Added Draggable windows and Window Control buttons"}, {"post_id": 30144, "ts": "2026-07-17T14:14:23Z", "hours": 0.3836, "text": "Added Task bar and window"}, {"post_id": 29931, "ts": "2026-07-17T03:17:13Z", "hours": 0.3103, "text": "Added Welcome screen"}]...
|
Title: My very own WebOS by @RajanKC | Stardance
Title: My very own WebOS by @RajanKC | Stardance
Devlogs:
Added Welcome screen
Added Task bar and window
Added Draggable windows and Window Control buttons
Add Notes app functionality with UI elements and styles
Update README, enhance UI, and improve functionality
Add Minecraft app icon and window functionality with styles
Add Solitaire app functionality with UI elements and window controls
Implement maximize functionality for app windows and update styles
Add minimize functionality to Notes, Minecraft, and Solitaire windows
Fix minimize button IDs for Notes and Solitaire, and implement taskbar item management
Add Google app functionality with UI elements and window controls
Add welcome page and style adjustments for improved layout
Add Paint app with UI elements and window controls
Add Calculator, Paint app, and Welcome page with associated styles and functionality
Add Calendar app with UI, functionality, and integrate into main interface
Add Notes app with UI and integrate into main interface
Add Map app with UI, functionality, and integrate into main interface
Add Quiz app with UI, functionality, and integrate into main interface
Add ToDo app with UI, functionality, and integrate into main interface
Add Tic Tac Toe app with UI, functionality, and integrate into main interface
Add QR Code Generator app with UI, functionality, and integrate into main interface
Add Github User Finder app with UI, functionality, and integrate into main interface
Add Password Strength Meter app with UI, functionality, and integrate into main interface
Ships:
Shipped WebOS. Built a basic browser desktop clone with HTML, CSS, and JS. It has a taskbar, a welcome window, windows you can drag around with working close buttons, and a simple notes app that opens when clicked.
OS-Web is a lightweight, open-source web operating system built with HTML, CSS, and JavaScript. It brings a desktop-style experience to your browser with apps, a taskbar, and a simple interface that you can explore, customize, and improve....
|
1792832103.4903517
|
1792918503.4903517
|
|
36050
|
Snake Game by @vatsamalakar | Stardance
|
vatsamalakar
|
2
|
5.0
|
20
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-21T01:43:29Z", "hours": 0.0, "multiplier": 2.89, "payout": 1, "blessing": "neutral", "text": "I added WASD support and updated the UI so players can use W/A/S/D as an alternative to the arrow keys. To make the change clear and intuitive, the in-game control hint and the instructions dialog now mention WASD, and each on-screen arrow button displays the matching WASD letter so both control schemes are visible. This improves usability for desktop players who prefer WASD and reduces confusion about available inputs. I verified the change by starting the game and doing a short playthrough: movement works with arrows and WASD (uppercase or lowercase), swipe and on-screen buttons still work, scoring and level-up behavior remain unchanged, and collisions behave the same. The changes are intentionally minimal and non-disruptive. Next steps I can take: add simple styling for the WASD labels to match the UI, run cross-browser checks, or add a small accessibility note about keyboard controls—which would you prefer?", "repo": "https://github.com/vatsamalakar/SnakeGame", "demo": "https://snake-game-peach-phi.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-16T21:22:56Z", "hours": 5.0, "multiplier": 3.52, "payout": 19, "blessing": "neutral", "text": "I am really happy with how my Snake game turned out. Throughout the process, I learned a lot about game development and improved my programming skills. I learned how to create a level system, add random obstacles, improve the game’s appearance, and make the gameplay more fun and challenging. One of the biggest things I learned was how important testing is. Every time I added a new feature, I had to make sure it worked correctly and did not create new bugs. I also realized that even small changes, like choosing better colors or randomizing obstacle locations, can make a big difference to the player’s experience. Overall, I enjoyed working on this project because it allowed me to be creative while improving my coding skills. If I continue developing this game in the future, I would like to add features such as a high score leaderboard, sound effects, and even power-ups. I hope you enjoyed playing it as much as I enjoyed creating it!", "repo": "https://github.com/vatsamalakar/SnakeGame", "demo": "https://snake-game-peach-phi.vercel.app/"}]...
|
[{"post_id": 32114, "ts": "202 [{"post_id": 32114, "ts": "2026-07-21T01:43:04Z", "hours": 0.2803, "text": "I added WASD support and updated the UI so players can use W/A/S/D as an alternative to the arrow keys. To make the change clear and intuitive, the in-game control hint and the instructions dialog now mention WASD, and each on-screen arrow button displays the matching WASD letter so both control schemes are visible. This improves usability for desktop players who prefer WASD and reduces confusion about available inputs. I verified the change by starting the game and doing a short playthrough: movement works with arrows and WASD (uppercase or lowercase), swipe and on-screen buttons still work, scoring and level-up behavior remain unchanged, and collisions behave the same. The changes are intentionally minimal and non-disruptive. Next steps I can take: add simple styling for the WASD labels to match the UI, run cross-browser checks, or add a small accessibility note about keyboard controls—which would you prefer?"}, {"post_id": 29767, "ts": "2026-07-16T21:20:32Z", "hours": 0.2925, "text": "My Snake Game is officially live! 🎉 I hope you all enjoy playing my version of this classic game. I added my own features, including levels that get harder as you play and obstacles that make each stage more challenging. I also made the obstacle locations random so that every game feels different and keeps you on your toes.this project. I had a lot of fun building it and I learned many new programming skills along the way. Give it a try, see how far you can get, and let me know your highest score. I hope you have as much fun playing it as I had making it!"}, {"post_id": 29635, "ts": "2026-07-16T18:13:44Z", "hours": 0.2686, "text": "My newest change was writing the rules for the obstacles and level system in my game. I wanted the game to become more exciting as the player keeps playing instead of staying the same the whole time. Now, every time the snake eats 3 red fruits, the level increases by 1. As the level goes up, the game becomes harder because more obstacles are added that the snake has to dodge. This makes the player pay more attention and react faster as they move through each level. I also made sure that the obstacles appear in random places each time the game is played. This is important because if the obstacles always appeared in the same spots, players would quickly memorize where they were and the game would become too easy and repetitive. By randomizing the obstacle locations, every game feels different, which keeps the game challenging and interesting."}, {"post_id": 29596, "ts": "2026-07-16T17:11:16Z", "hours": 0.3008, "text": "I have now worked on the frontend of my snake game. Initially the snake body was blending in with the background which made it hard to see how long and where the snake is. To fix this I changed the background color to a darker shade of blue that is darker than the green snake body. Another change I made was making the color of obstacle different from the red fruit so that users are not confused."}, {"post_id": 29573, "ts": "2026-07-16T16:37:57Z", "hours": 4.5828, "text": "Being inspired by Google’s Snake game, I decided to create my own version of the game. I have always enjoyed playing Snake because it is fun and easy to understand, so I wanted to make a version with some extra features. My goal is to make the game more interesting by adding levels and obstacles. As the player progresses through the game, it will become more challenging, giving them something new to overcome instead of playing the same level over and over again. I think this will make the game more entertaining and a great way for people to pass the time. Before adding the main features, I started by creating an instructions button. I thought this was important because it helps new players understand how to play the game before they begin. The instructions explain the controls, the goal of the game, and what players need to avoid. By adding clear instructions at the start, users can quickly learn how to play and enjoy the game without feeling confused."}]...
|
Title: Snake Game by @vatsamalakar | Stardance
De Title: Snake Game by @vatsamalakar | Stardance
Devlogs:
Being inspired by Google’s Snake game, I decided to create my own version of the game. I have always enjoyed playing Snake because it is fun and easy to understand, so I wanted to make a version with some extra features. My goal is to make the game more interesting by adding levels and obstacles. As the player progresses through the game, it will become more challenging, giving them something new to overcome instead of playing the same level over and over again. I think this will make the game more entertaining and a great way for people to pass the time. Before adding the main features, I started by creating an instructions button. I thought this was important because it helps new players understand how to play the game before they begin. The instructions explain the controls, the goal of the game, and what players need to avoid. By adding clear instructions at the start, users can quickly learn how to play and enjoy the game without feeling confused.
I have now worked on the frontend of my snake game. Initially the snake body was blending in with the background which made it hard to see how long and where the snake is. To fix this I changed the background color to a darker shade of blue that is darker than the green snake body. Another change I made was making the color of obstacle different from the red fruit so that users are not confused.
My newest change was writing the rules for the obstacles and level system in my game. I wanted the game to become more exciting as the player keeps playing instead of staying the same the whole time. Now, every time the snake eats 3 red fruits, the level increases by 1. As the level goes up, the game becomes harder because more obstacles are added that the snake has to dodge. This makes the player pay more attention and react faster as they move through each level. I also made sure that the obstacles appear in random places each time the game is played. This is important because if the obstacles always appeared in the same spots, players would quickly memorize where they were and the game would become too easy and repetitive. By randomizing the obstacle locations, every game feels different, which keeps the game challenging and interesting.
My Snake Game is officially live! 🎉 I hope you all enjoy playing my version of this classic game. I added my own features, including levels that get harder as you play and obstacles that make each stage more challenging. I also made the obstacle locations random so that every game feels different and keeps you on your toes.this project. I had a lot of fun building it and I learned many new programming skills along the way. Give it a try, see how far you can get, and let me know your highest score. I hope you have as much fun playing it as I had making it!
I added WASD support and updated the UI so players can use W/A/S/D as an alternative to the arrow keys. To make the change clear and intuitive, the in-game control hint and the instructions dialog now mention WASD, and each on-screen arrow button displays the matching WASD letter so both control schemes are visible. This improves usability for desktop players who prefer WASD and reduces confusion about available inputs. I verified the change by starting the game and doing a short playthrough: movement works with arrows and WASD (uppercase or lowercase), swipe and on-screen buttons still work, scoring and level-up behavior remain unchanged, and collisions behave the same. The changes are intentionally minimal and non-disruptive. Next steps I can take: add simple styling for the WASD labels to match the UI, run cross-browser checks, or add a small accessibility note about keyboard controls—which would you prefer?
Ships:
I am really happy with how my Snake game turned out. Throughout the process, I learned a lot about game development and improved my programming skills. I learned how to create a level system, add random obstacles, improve the game’s appearance, and make the gameplay more fun and challenging. One of the biggest things I learned was how important testing is. Every time I added a new feature, I had to make sure it worked correctly and did not create new bugs. I also realized that even small changes, like choosing better colors or randomizing obstacle locations, can make a big difference to the player’s experience. Overall, I enjoyed working on this project because it allowed me to be creative while improving my coding skills. If I continue developing this game in the future, I would like to add features such as a high score leaderboard, sound effects, and even power-ups. I hope you enjoyed playing it as much as I enjoyed creating it!
I added WASD support and updated the UI so players can use W/A/S/D as an alternative to the arrow keys. To make the change clear and intuitive, the in-game control hint and the instructions dialog now mention WASD, and each on-screen arrow button displays the matching WASD letter so both control schemes are visible. This improves usability for desktop players who prefer WASD and reduces confusion about available inputs. I verified the change by starting the game and doing a short playthrough: movement works with arrows and WASD (uppercase or lowercase), swipe and on-screen buttons still work, scoring and level-up behavior remain unchanged, and collisions behave the same. The changes are intentionally minimal and non-disruptive. Next steps I can take: add simple styling for the WASD labels to match the UI, run cross-browser checks, or add a small accessibility note about keyboard controls—which would you prefer?...
|
1792882106.7229445
|
1793746106.7229445
|
|
36079
|
My first web page! :D by @LeonVP29 | Stardance
|
LeonVP29
|
2
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-27T17:45:12Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i think than there was an error with the shipping so here is the full one, all the information will be avaible in devlogs and the past ship", "repo": "https://github.com/Leon7723/my_first_webpage", "demo": "https://leon7723.github.io/my_first_webpage/"}, {"ship_num": 2, "ts": "2026-08-24T01:07:15Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "finally i finished my website, thanks to all the people who liked the idea and supported in the proyect, now than the web is done go to check it out and pleaaase rate it so it is oficialy shipped! :D", "repo": "https://github.com/Leon7723/my_first_webpage", "demo": "https://leon7723.github.io/my_first_webpage/"}]...
|
[{"post_id": 54814, "ts": "202 [{"post_id": 54814, "ts": "2026-08-25T23:19:48Z", "hours": 0.9411, "text": "sooooo. the page got rejected twice because it needed more things so i fixed it and added two new things 1: in the top of page you will have a navigation bar to move faster to any section in the page if you dont want to scroll 2: for those who speak english… I MADE AN ENGLISH BUTTON (well i didnt i saked ai to help me because im a begginer after all but i maked the simple visual) so many more people can read all than is in the page and thats all so thanks to everyone for supporting this proyect and to all the people who started following the proyect see all on a future proyect (if i find something to make)"}, {"post_id": 53435, "ts": "2026-08-23T23:47:56Z", "hours": 1.3639, "text": "in just a few minutes i will release the full website. thanks for all the support and i hope than i can make another awesome project in stardance :D"}, {"post_id": 51825, "ts": "2026-08-21T17:55:32Z", "hours": 3.1878, "text": "hi everyone leon here in devlog #2 in this oportuniti y added more stuffs to the page like the progress bar in the bottom and made them look good but i ran out of ideas so if someone has an idea than i can add to the page, leave it in the comments, thanks all for the support and see all in devlog #3 (also if some of you know how can i make a demo of the page could you help me?) see all next time and have a nice day :D"}, {"post_id": 29633, "ts": "2026-07-16T18:12:21Z", "hours": 4.5447, "text": "Hi everyone, this is my first devlog so im gona tell you about what im working, the firts thing than im creating is a web page where you can see who i am and what see things like what i like to do or mi skills and a seccion of who i am like person, if you like mi first project can you follow me so you can see my other devlogs or projects, see you the next devlog :D"}]...
|
Title: My first web page! :D by @LeonVP29 | Starda Title: My first web page! :D by @LeonVP29 | Stardance
Devlogs:
Hi everyone, this is my first devlog so im gona tell you about what im working, the firts thing than im creating is a web page where you can see who i am and what see things like what i like to do or mi skills and a seccion of who i am like person, if you like mi first project can you follow me so you can see my other devlogs or projects, see you the next devlog :D
hi everyone leon here in devlog #2 in this oportuniti y added more stuffs to the page like the progress bar in the bottom and made them look good but i ran out of ideas so if someone has an idea than i can add to the page, leave it in the comments, thanks all for the support and see all in devlog #3 (also if some of you know how can i make a demo of the page could you help me?) see all next time and have a nice day :D
in just a few minutes i will release the full website. thanks for all the support and i hope than i can make another awesome project in stardance :D
sooooo. the page got rejected twice because it needed more things so i fixed it and added two new things 1: in the top of page you will have a navigation bar to move faster to any section in the page if you dont want to scroll 2: for those who speak english… I MADE AN ENGLISH BUTTON (well i didnt i saked ai to help me because im a begginer after all but i maked the simple visual) so many more people can read all than is in the page and thats all so thanks to everyone for supporting this proyect and to all the people who started following the proyect see all on a future proyect (if i find something to make)
Ships:
finally i finished my website, thanks to all the people who liked the idea and supported in the proyect, now than the web is done go to check it out and pleaaase rate it so it is oficialy shipped! :D
i think than there was an error with the shipping so here is the full one, all the information will be avaible in devlogs and the past ship...
|
1792839387.6218188
|
1792925787.6218188
|
|
36100
|
Mathemactor by @UmarFarooq | Stardance
|
UmarFarooq
|
2
|
4.0
|
8
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-23T17:35:09Z", "hours": 3.0, "multiplier": 2.36, "payout": 4, "blessing": "neutral", "text": "I updated my project. Added graphs using function-plot library with highlighted roots for linear, quadratic and simultaneous linear equations. Imaginary roots are also supported now.", "repo": "https://github.com/Umar-Farooq-5757/mathemactor", "demo": "https://mathemactor.netlify.app/"}, {"ship_num": 2, "ts": "2026-07-16T19:02:30Z", "hours": 1.0, "multiplier": 2.85, "payout": 4, "blessing": "neutral", "text": "I created a mathematics equation solver webapp. The equation solution handling part was a bit tricky, but I managed to do it. This app is for users who know even basic maths.", "repo": "https://github.com/Umar-Farooq-5757/mathemactor", "demo": "https://mathemactor.netlify.app/"}]...
|
[{"post_id": 33595, "ts": "202 [{"post_id": 33595, "ts": "2026-07-23T17:21:37Z", "hours": 0.4375, "text": "Now, mathemactor also supports imaginary roots for quadratic equations. But, graph is not available for equations with complex/imaginary roots."}, {"post_id": 33434, "ts": "2026-07-23T11:41:46Z", "hours": 1.3472, "text": "Integrated function-plot library for showing graphs of equations with highlighted roots. You can zoom in or out and see the roots."}, {"post_id": 33317, "ts": "2026-07-23T03:51:12Z", "hours": 1.6347, "text": "Implemented step by step solution for quadratic equations. Now, you can see each step of quadratic equation getting solved. Separate solutions are available for both roots."}, {"post_id": 29661, "ts": "2026-07-16T18:43:05Z", "hours": 1.3489, "text": "I started working on a mathematics equation solver webapp last year. And after creating its most basic version, I moved forward. But now, I thought I need to add some more features i it. Here is a feature that I have added: Showing step-by-step solution of Linear equation. See the equation going towards solution at each step. What’s next? Looking forward to add the same feature for quadratic equations"}]...
|
Title: Mathemactor by @UmarFarooq | Stardance
Dev Title: Mathemactor by @UmarFarooq | Stardance
Devlogs:
I started working on a mathematics equation solver webapp last year. And after creating its most basic version, I moved forward. But now, I thought I need to add some more features i it. Here is a feature that I have added: Showing step-by-step solution of Linear equation. See the equation going towards solution at each step. What’s next? Looking forward to add the same feature for quadratic equations
Implemented step by step solution for quadratic equations. Now, you can see each step of quadratic equation getting solved. Separate solutions are available for both roots.
Integrated function-plot library for showing graphs of equations with highlighted roots. You can zoom in or out and see the roots.
Now, mathemactor also supports imaginary roots for quadratic equations. But, graph is not available for equations with complex/imaginary roots.
Ships:
I created a mathematics equation solver webapp. The equation solution handling part was a bit tricky, but I managed to do it. This app is for users who know even basic maths.
I updated my project. Added graphs using function-plot library with highlighted roots for linear, quadratic and simultaneous linear equations. Imaginary roots are also supported now....
|
1792850034.4040775
|
1792936434.4040775
|
|
36153
|
BohrBot by @angelmh2012 | Stardance
|
angelmh2012
|
2
|
2.0
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-06T19:16:51Z", "hours": 1.0, "multiplier": 1.7, "payout": 2, "blessing": "neutral", "text": "I just I exchange some functions, and use not-Auth apis for all the function(except weather) and i think the most difficult is to add blocks to API request for the randomspacefact command", "repo": "https://github.com/angelmh2012-cloud/bohrbot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354?skip_today=1"}, {"ship_num": 2, "ts": "2026-07-21T22:21:14Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a SlackBot that works 24/7, the more challenging situation was setting up the Nest server on my command line, in the terminal of Linux Mint, something i’m proud is my ability to blend my programation skills with AI", "repo": "https://github.com/angelmh2012-cloud/bohrbot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354?skip_today=1"}]...
|
[{"post_id": 39094, "ts": "202 [{"post_id": 39094, "ts": "2026-08-01T19:53:05Z", "hours": 1.3781, "text": "I replace two function like quotes and random emojis to Chuck Norris jokes and space facts I did a lot of commits because i wanted to add a third function that returns you pizza images depending of a HTML protocol but it was messy so I finish deleting it"}, {"post_id": 32627, "ts": "2026-07-21T22:18:42Z", "hours": 1.0456, "text": "I’ve finished my slack bot, I’ll probably add more fetures in the future but # Slack Bot it is a bot that runs 24/7 on a Nest server, this is my second project in hack club Functions Well, this robot has many functions as Weather Random emoji quotation and bot ping"}]...
|
Title: BohrBot by @angelmh2012 | Stardance
Devlog Title: BohrBot by @angelmh2012 | Stardance
Devlogs:
I’ve finished my slack bot, I’ll probably add more fetures in the future but # Slack Bot it is a bot that runs 24/7 on a Nest server, this is my second project in hack club Functions Well, this robot has many functions as Weather Random emoji quotation and bot ping
I replace two function like quotes and random emojis to Chuck Norris jokes and space facts I did a lot of commits because i wanted to add a third function that returns you pizza images depending of a HTML protocol but it was messy so I finish deleting it
Ships:
I made a SlackBot that works 24/7, the more challenging situation was setting up the Nest server on my command line, in the terminal of Linux Mint, something i’m proud is my ability to blend my programation skills with AI
I just I exchange some functions, and use not-Auth apis for all the function(except weather) and i think the most difficult is to add blocks to API request for the randomspacefact command...
|
1792849716.6331425
|
1792936116.6331425
|
|
36279
|
My own site! by @tr_Blu | Stardance
|
tr_Blu
|
2
|
7.0
|
5
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-07T02:30:44Z", "hours": 4.0, "multiplier": 1.26, "payout": 5, "blessing": "neutral", "text": "I added the devlog page that transports people to the hackclub pages for devlogs(if they work) and I made the navbar seperate from the pages by injecting them into the pages. That was extremly difficult when it was in the folder format and easier when it was in the flat file format but in the end, I choose the file format as it made it easier for me and I usually keep my folders open either way. I also added some formating and info to the pages", "repo": "https://github.com/daveandbustrer/my-personal-website", "demo": "https://daveandbustrer.github.io/my-personal-website/"}, {"ship_num": 2, "ts": "2026-07-25T01:20:21Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my personal page that looks good and the hardest part was definingly the changing the color when scrolling down since I got help and some code from AI", "repo": "https://github.com/daveandbustrer/my-personal-website", "demo": "https://daveandbustrer.github.io/my-personal-website/"}]...
|
[{"post_id": 42381, "ts": "202 [{"post_id": 42381, "ts": "2026-08-07T02:16:09Z", "hours": 0.7914, "text": "i got rid of the folder structure since I can’t figure out why the links wasn’t working so I got back to the original files on one level, but it works and I got navbar working in one file with strings instead of html. I might change that back to html. I wasn’t able to post since I had to go to school, and I have 2 APs so that took most of my time."}, {"post_id": 36620, "ts": "2026-07-28T20:56:43Z", "hours": 0.5942, "text": "i finnaly fixed the navbar issue but now have multiple other issues with the navigations"}, {"post_id": 36586, "ts": "2026-07-28T20:04:23Z", "hours": 0.5083, "text": "I redid the nav bar so that it’s the same in all the pages without me having to change it for every page I just put it into the page through js"}, {"post_id": 36013, "ts": "2026-07-27T20:37:58Z", "hours": 2.1167, "text": "first ship done YIPEE! now I made the links in the uhh… project page. the links are also rainbow"}, {"post_id": 34359, "ts": "2026-07-25T00:08:40Z", "hours": 1.3333, "text": "so… it’s been week since I lasted posted. I want on a vacation and wasn’t able to code so I didn’t have time and the place was fun. back to main point of this I was able to finish the home page and made a cool color change transition with AI help so that’s great. If it doesn’t say anything about AI that means I forgot to add the AI disclaimer. edit: link for page -> https://daveandbustrer.github.io/my-personal-website/"}, {"post_id": 29959, "ts": "2026-07-17T05:18:22Z", "hours": 1.4014, "text": "i added a frame for my page but I have an idea for it"}]...
|
Title: My own site! by @tr_Blu | Stardance
Devlog Title: My own site! by @tr_Blu | Stardance
Devlogs:
i added a frame for my page but I have an idea for it
so… it’s been week since I lasted posted. I want on a vacation and wasn’t able to code so I didn’t have time and the place was fun. back to main point of this I was able to finish the home page and made a cool color change transition with AI help so that’s great. If it doesn’t say anything about AI that means I forgot to add the AI disclaimer. edit: link for page -> https://daveandbustrer.github.io/my-personal-website/
first ship done YIPEE! now I made the links in the uhh… project page. the links are also rainbow
I redid the nav bar so that it’s the same in all the pages without me having to change it for every page I just put it into the page through js
i finnaly fixed the navbar issue but now have multiple other issues with the navigations
i got rid of the folder structure since I can’t figure out why the links wasn’t working so I got back to the original files on one level, but it works and I got navbar working in one file with strings instead of html. I might change that back to html. I wasn’t able to post since I had to go to school, and I have 2 APs so that took most of my time.
Ships:
I made my personal page that looks good and the hardest part was definingly the changing the color when scrolling down since I got help and some code from AI
I added the devlog page that transports people to the hackclub pages for devlogs(if they work) and I made the navbar seperate from the pages by injecting them into the pages. That was extremly difficult when it was in the folder format and easier when it was in the flat file format but in the end, I choose the file format as it made it easier for me and I usually keep my folders open either way. I also added some formating and info to the pages...
|
1792846209.7067573
|
1792932609.7067573
|
|
36562
|
My own site! by @vatsamalakar | Stardance
|
vatsamalakar
|
2
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T22:39:26Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I lowk just locked in, pls give good review i changed the whole website please take a look at it!!", "repo": "https://github.com/vatsamalakar/PersonalWebsite", "demo": "https://personal-website-two-lake-31.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-18T19:55:59Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built My Own Site!, a modern personal portfolio website to showcase my projects, skills, and development journey. It features a responsive design, animated particle background, dark/light mode, smooth scrolling, project cards, skill bars, GitHub statistics, and a contact form. One of the biggest challenges was polishing the UI, making everything responsive across devices, and adding interactive JavaScript features while keeping the site fast. I’m especially proud of the overall design and how everything comes together into a professional-looking portfolio. To test it, explore each section, try the theme toggle, check the project cards, and verify that all navigation links and interactive elements work correctly.", "repo": "https://github.com/vatsamalakar/PersonalWebsite", "demo": "https://personal-website-two-lake-31.vercel.app/"}]...
|
[{"post_id": 32107, "ts": "202 [{"post_id": 32107, "ts": "2026-07-21T01:24:23Z", "hours": 2.2853, "text": "I made several updates to the UI. The biggest one was each tab becoming its own page. Previously everything was on one page and I felt like it made the page look crowded. I also improved the stars/constellation in the background so that they move more smoothly. I added this feature to keep my personal site a bit whimsical and interactive."}, {"post_id": 30839, "ts": "2026-07-18T19:39:58Z", "hours": 1.0, "text": "— Final Improvements and Deployment Today I finished polishing and preparing my portfolio for deployment. I fixed small bugs, improved animations, checked responsiveness, and optimized the website. Final improvements: Added README documentation Organized project files Improved loading speed Tested all buttons and links Deployed the website online Building this project helped me improve my HTML, CSS, JavaScript, and design skills. I learned that creating a great website is not only about writing code, but also about creating a good experience for users."}, {"post_id": 30325, "ts": "2026-07-17T19:48:47Z", "hours": 0.3181, "text": "Today I customized my portfolio to make it represent me. I added my own projects and created cards that show: Project screenshots Descriptions Links Technologies used I also updated my About Me section and added my interests, skills, and goals as a developer. This made the website feel less like a template and more like my own personal space on the internet. Also, I added this too!!, A website should not only look good on a computer, so I tested it on smaller screens and adjusted the design. I improved: Mobile navigation Text sizes Image scaling Project cards Section spacing Now the website adapts better to phones, tablets, and different screen sizes."}, {"post_id": 30315, "ts": "2026-07-17T19:26:49Z", "hours": 0.2561, "text": "Today I worked on improving the visual design using CSS. The first version looked very basic, so I focused on making it more modern and polished. I added: Glassmorphism cards Gradient backgrounds Rounded corners Better typography Hover animations Glowing effects I also made sure the colors matched a futuristic developer theme. This was one of my favorite parts because I could see the website transform from a simple page into something much more professional."}, {"post_id": 30295, "ts": "2026-07-17T19:04:36Z", "hours": 0.395, "text": "Today I focused on creating the layout and content of my website. I created the different sections using HTML and learned more about organizing webpages properly. I added a navigation bar, hero section, about section, skills section, projects section, and contact area. I also added: Profile image section Project showcase cards Social media links Resume button The website started feeling like an actual portfolio instead of just a simple webpage."}, {"post_id": 30279, "ts": "2026-07-17T18:33:45Z", "hours": 0.4753, "text": "Today I began working on my personal portfolio website. Before writing any code, I wanted to think carefully about what I wanted this project to represent. Instead of creating a simple webpage with my name and a few links, I wanted to build a complete digital identity that showcases my growth as a developer. I started by planning the overall structure of the website. I decided that the portfolio should include several important sections: an introduction about myself, my technical skills, projects I have built, achievements, and ways for people to contact me. I also focused on the design direction. I wanted the website to have a modern developer aesthetic with a futuristic feel. Some ideas I explored were glassmorphism, animated backgrounds, smooth transitions, and interactive components. During this stage, I learned that good websites are not created by immediately writing code. Planning the user experience, layout, and purpose first makes the development process much smoother. This gave me a clear roadmap for the rest of the project."}]...
|
Title: My own site! by @vatsamalakar | Stardance
Title: My own site! by @vatsamalakar | Stardance
Devlogs:
Today I began working on my personal portfolio website. Before writing any code, I wanted to think carefully about what I wanted this project to represent. Instead of creating a simple webpage with my name and a few links, I wanted to build a complete digital identity that showcases my growth as a developer. I started by planning the overall structure of the website. I decided that the portfolio should include several important sections: an introduction about myself, my technical skills, projects I have built, achievements, and ways for people to contact me. I also focused on the design direction. I wanted the website to have a modern developer aesthetic with a futuristic feel. Some ideas I explored were glassmorphism, animated backgrounds, smooth transitions, and interactive components. During this stage, I learned that good websites are not created by immediately writing code. Planning the user experience, layout, and purpose first makes the development process much smoother. This gave me a clear roadmap for the rest of the project.
Today I focused on creating the layout and content of my website. I created the different sections using HTML and learned more about organizing webpages properly. I added a navigation bar, hero section, about section, skills section, projects section, and contact area. I also added: Profile image section Project showcase cards Social media links Resume button The website started feeling like an actual portfolio instead of just a simple webpage.
Today I worked on improving the visual design using CSS. The first version looked very basic, so I focused on making it more modern and polished. I added: Glassmorphism cards Gradient backgrounds Rounded corners Better typography Hover animations Glowing effects I also made sure the colors matched a futuristic developer theme. This was one of my favorite parts because I could see the website transform from a simple page into something much more professional.
Today I customized my portfolio to make it represent me. I added my own projects and created cards that show: Project screenshots Descriptions Links Technologies used I also updated my About Me section and added my interests, skills, and goals as a developer. This made the website feel less like a template and more like my own personal space on the internet. Also, I added this too!!, A website should not only look good on a computer, so I tested it on smaller screens and adjusted the design. I improved: Mobile navigation Text sizes Image scaling Project cards Section spacing Now the website adapts better to phones, tablets, and different screen sizes.
— Final Improvements and Deployment Today I finished polishing and preparing my portfolio for deployment. I fixed small bugs, improved animations, checked responsiveness, and optimized the website. Final improvements: Added README documentation Organized project files Improved loading speed Tested all buttons and links Deployed the website online Building this project helped me improve my HTML, CSS, JavaScript, and design skills. I learned that creating a great website is not only about writing code, but also about creating a good experience for users.
I made several updates to the UI. The biggest one was each tab becoming its own page. Previously everything was on one page and I felt like it made the page look crowded. I also improved the stars/constellation in the background so that they move more smoothly. I added this feature to keep my personal site a bit whimsical and interactive.
Ships:
I built My Own Site!, a modern personal portfolio website to showcase my projects, skills, and development journey. It features a responsive design, animated particle background, dark/light mode, smooth scrolling, project cards, skill bars, GitHub statistics, and a contact form. One of the biggest challenges was polishing the UI, making everything responsive across devices, and adding interactive JavaScript features while keeping the site fast. I’m especially proud of the overall design and how everything comes together into a professional-looking portfolio. To test it, explore each section, try the theme toggle, check the project cards, and verify that all navigation links and interactive elements work correctly.
I lowk just locked in, pls give good review i changed the whole website please take a look at it!!...
|
1792882126.9295194
|
1793746126.9295194
|
|
36659
|
nawy :3 by @Energyboy | Stardance
|
Energyboy
|
2
|
5.0
|
24
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-27T09:55:04Z", "hours": 5.0, "multiplier": 1.49, "payout": 7, "blessing": "neutral", "text": "I implemented a pingr command (ping remote) which is able to ping http & https websites. It was really challenging as I had to learn a new library but it was worth it in the end. I’m planning on extending the feature by letting you ping literally anything. Wish me luck :p", "repo": "https://github.com/Energyboy-OwO/nawy", "demo": "https://discord.gg/9rUh6tnZEB"}, {"ship_num": 2, "ts": "2026-07-18T23:50:35Z", "hours": 0.0, "multiplier": 10.03, "payout": 17, "blessing": "neutral", "text": "I made a discord bot in rust! im learning rust as it’s my first time actually using rust. well not first time but like im doing rustlings and well I learn better when making a project so I thought to myself I’ll make a discord bot in rust and well while im at it I will submit it to Stardance, you can check the devlogs to see it in action or try it for yourselves. thank you for your attention and reading. im really happy about this project and how it’s turning out :3. it’s in a working state but I’m going to continue working until it’s “finished” as well rn I feel like it’s finished but not “finished” like it has all the features I want but rn it has all the features I want currently and ill add more daily :3. thank you for reading :3", "repo": "https://github.com/Energyboy-OwO/nawy", "demo": "https://discord.gg/9rUh6tnZEB"}]...
|
[{"post_id": 35186, "ts": "202 [{"post_id": 35186, "ts": "2026-07-26T13:29:43Z", "hours": 1.5111, "text": "Devlog :3 Added .pingr (ping remote) command to ping websites :3 I’ll extend it to be able to ping anything but at the moment it only supports http & https"}, {"post_id": 32347, "ts": "2026-07-21T13:38:31Z", "hours": 1.6831, "text": "I implemented a silly info command and time :3"}, {"post_id": 31807, "ts": "2026-07-20T14:19:17Z", "hours": 1.9722, "text": "Meow meow meow meow meow. Added info command and other silly stuff, hackatime still misstracking my stuff which is annoying but oh well"}, {"post_id": 30955, "ts": "2026-07-18T23:30:51Z", "hours": 0.0, "text": "added 2 new commands to my multipurpose rust discord bot I hope y’all like it :>"}, {"post_id": 30921, "ts": "2026-07-18T22:12:59Z", "hours": 0.0, "text": "sooo… feature list / update we now have ping command to get a pong, coinflip command to flip coins and ease life choices and an automeower to meow back at you"}, {"post_id": 30886, "ts": "2026-07-18T21:09:53Z", "hours": 0.0, "text": "sooooo hi people :3 my project is called Nawy, it is a multipurpose discord bot build in rust :3, this will be my first ever project in rust as im learning the language but I learn best by doing so here we are :p, this project is for me to learn how to code in rust as im very interested in it. I will never use AI in rust as I want to learn it and never use it in this language (my hackatime is buggy and shows 5 mins in this project with open code but idk why). I currently have like an hour and a half in the making of it but started only tracking it recently. Thank you for reading :3"}]...
|
Title: nawy :3 by @Energyboy | Stardance
Devlogs: Title: nawy :3 by @Energyboy | Stardance
Devlogs:
sooooo hi people :3 my project is called Nawy, it is a multipurpose discord bot build in rust :3, this will be my first ever project in rust as im learning the language but I learn best by doing so here we are :p, this project is for me to learn how to code in rust as im very interested in it. I will never use AI in rust as I want to learn it and never use it in this language (my hackatime is buggy and shows 5 mins in this project with open code but idk why). I currently have like an hour and a half in the making of it but started only tracking it recently. Thank you for reading :3
sooo… feature list / update we now have ping command to get a pong, coinflip command to flip coins and ease life choices and an automeower to meow back at you
added 2 new commands to my multipurpose rust discord bot I hope y’all like it :>
Meow meow meow meow meow. Added info command and other silly stuff, hackatime still misstracking my stuff which is annoying but oh well
I implemented a silly info command and time :3
Devlog :3 Added .pingr (ping remote) command to ping websites :3 I’ll extend it to be able to ping anything but at the moment it only supports http & https
Ships:
I made a discord bot in rust! im learning rust as it’s my first time actually using rust. well not first time but like im doing rustlings and well I learn better when making a project so I thought to myself I’ll make a discord bot in rust and well while im at it I will submit it to Stardance, you can check the devlogs to see it in action or try it for yourselves. thank you for your attention and reading. im really happy about this project and how it’s turning out :3. it’s in a working state but I’m going to continue working until it’s “finished” as well rn I feel like it’s finished but not “finished” like it has all the features I want but rn it has all the features I want currently and ill add more daily :3. thank you for reading :3
I implemented a pingr command (ping remote) which is able to ping http & https websites. It was really challenging as I had to learn a new library but it was worth it in the end. I’m planning on extending the feature by letting you ping literally anything. Wish me luck :p...
|
1792824797.0549035
|
1792911197.0549035
|
|
36785
|
Rev by @luxi | Stardance
|
luxi
|
2
|
37.14
|
578
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-15T15:47:48Z", "hours": 23.0, "multiplier": 17.5, "payout": 394, "blessing": "neutral", "text": "I implemented rigid bodies and more optimizations in this release. I wanted to implement detection of floating bodies and automatically turning them into rigid bodies but I realized it’s pointless. It needs to be solved in world gen then only do a basic check around an area of change.", "repo": "https://github.com/nixuntris/Unnamed-CA-engine", "demo": "https://github.com/nixuntris/Unnamed-CA-engine/releases/tag/Stable_Release3"}, {"ship_num": 2, "ts": "2026-07-21T18:08:07Z", "hours": 13.0, "multiplier": 13.86, "payout": 184, "blessing": "neutral", "text": "I made a little physics engine. I am shipping it for the competition but I will come back to it later. It’s a cellular automata based physics engine, every single pixel is simulated. Technically it can support any world size but you might need to play around with the source code, it’s hard set at 1920x1080 rn. You can edit the cell behaviors as well. Wish you a nice day.", "repo": "https://github.com/nixuntris/Unnamed-CA-engine", "demo": "https://github.com/nixuntris/Unnamed-CA-engine/releases/tag/Stable_Release3"}]...
|
[{"post_id": 61115, "ts": "202 [{"post_id": 61115, "ts": "2026-09-03T20:57:29Z", "hours": 1.1433, "text": "I’ve begun work on entities, right now I only implemented a wondering behaviour. The plan is too implement multiple different behaviours so you can config them. Like for example if hungry wonder and find a carrot"}, {"post_id": 47534, "ts": "2026-08-15T14:43:04Z", "hours": 9.3119, "text": "I have been working on improving rigid bodies. Along with adding collisions to them by the player so you can pick them up. I’ve been working on floating terrain detection but I realized it’s either gonna be a very expensive and complicated algorithm or something in world gen. I am probably gonna leave it at that even though the rigid bodies are incredibly janky and just release it. I am tired and want to move on to a side project"}, {"post_id": 43327, "ts": "2026-08-08T15:02:55Z", "hours": 7.0858, "text": "Not visual. However I’ve been working on optimizing the engine. I’ve implemented face culling for physics object. Eg only pixels that aren’t covered will have collision checks with other objects. As well as AABBs, so that unless their general shapes collides, no per pixel collisions arise. I implemented multiple light optimizations, most important is rendering it a lower resolution as at this scale, as at half resolution it’s indistinguishable from native. As well as I started work on a player controller. So for example light update went from 39157us to 3399 us."}, {"post_id": 38207, "ts": "2026-07-31T14:34:22Z", "hours": 3.7519, "text": "I have implemented rigid bodies into the engine. Rn this is a very basic and slow version. I plan to finish their interactions with lighting, optimize their collisions and then add JFA to check for disconnected terrain to become rigid bodies. Happy coding"}, {"post_id": 34667, "ts": "2026-07-25T15:56:56Z", "hours": 2.3528, "text": "I’ve been working on multithreading and general optimizations. I use OMP for it, it makes multihreading much easier however I still needed to make some changes. I split away everything rendering related from physics and lighting updates. I am using OMP as well because CA is much more of a problem of throughput than one of on demand updates. As you update millions of pixels every frame and don’t need to care about splitting physics and sound. However in the future I will ideally have a combination of both. Let’s say 4 threads manually controlled for sound, enemy ai, physics so that they can be responsive while CA uses 8 threads for pure throughput. Please keep in mind light updates are not done every frame, so it being 39157 us doesn’t mean it actually runs at sub 60 fps. One other thing I improved as well is support for larger world. You can have any size you want as long as it is smaller than the 32 bit integer limit."}, {"post_id": 32458, "ts": "2026-07-21T17:39:49Z", "hours": 2.8269, "text": "In the meantime, I’ve worked on optimizing the project. I am trying to implement a more traditional physics solver but I am tired of rigid bodies constantly failing. So I am shipping it as it is in a bit. I will come back and work on it in the future as I still want to play around with it"}, {"post_id": 31447, "ts": "2026-07-19T20:19:32Z", "hours": 5.4047, "text": "I’ve been working on Rev, I have implemented simple lighting, and improved the code structure. The world size can be edited however it’s still tied to the window size. Something I plan on changing. I want to support large worlds. Have a wonderful day"}, {"post_id": 30746, "ts": "2026-07-18T16:00:44Z", "hours": 5.1192, "text": "I’ve been working on a physics engine. I’ve implemented basic CA behavior along with chunking and dirty chunks and different cell behaviors and rules like gases, liquids, static objects, dissolving. Alongside basic terrain gen."}]...
|
Title: Rev by @luxi | Stardance
Devlogs:
I’ve bee Title: Rev by @luxi | Stardance
Devlogs:
I’ve been working on a physics engine. I’ve implemented basic CA behavior along with chunking and dirty chunks and different cell behaviors and rules like gases, liquids, static objects, dissolving. Alongside basic terrain gen.
I’ve been working on Rev, I have implemented simple lighting, and improved the code structure. The world size can be edited however it’s still tied to the window size. Something I plan on changing. I want to support large worlds. Have a wonderful day
In the meantime, I’ve worked on optimizing the project. I am trying to implement a more traditional physics solver but I am tired of rigid bodies constantly failing. So I am shipping it as it is in a bit. I will come back and work on it in the future as I still want to play around with it
I’ve been working on multithreading and general optimizations. I use OMP for it, it makes multihreading much easier however I still needed to make some changes. I split away everything rendering related from physics and lighting updates. I am using OMP as well because CA is much more of a problem of throughput than one of on demand updates. As you update millions of pixels every frame and don’t need to care about splitting physics and sound. However in the future I will ideally have a combination of both. Let’s say 4 threads manually controlled for sound, enemy ai, physics so that they can be responsive while CA uses 8 threads for pure throughput. Please keep in mind light updates are not done every frame, so it being 39157 us doesn’t mean it actually runs at sub 60 fps. One other thing I improved as well is support for larger world. You can have any size you want as long as it is smaller than the 32 bit integer limit.
I have implemented rigid bodies into the engine. Rn this is a very basic and slow version. I plan to finish their interactions with lighting, optimize their collisions and then add JFA to check for disconnected terrain to become rigid bodies. Happy coding
Not visual. However I’ve been working on optimizing the engine. I’ve implemented face culling for physics object. Eg only pixels that aren’t covered will have collision checks with other objects. As well as AABBs, so that unless their general shapes collides, no per pixel collisions arise. I implemented multiple light optimizations, most important is rendering it a lower resolution as at this scale, as at half resolution it’s indistinguishable from native. As well as I started work on a player controller. So for example light update went from 39157us to 3399 us.
I have been working on improving rigid bodies. Along with adding collisions to them by the player so you can pick them up. I’ve been working on floating terrain detection but I realized it’s either gonna be a very expensive and complicated algorithm or something in world gen. I am probably gonna leave it at that even though the rigid bodies are incredibly janky and just release it. I am tired and want to move on to a side project
I’ve begun work on entities, right now I only implemented a wondering behaviour. The plan is too implement multiple different behaviours so you can config them. Like for example if hungry wonder and find a carrot
Ships:
I made a little physics engine. I am shipping it for the competition but I will come back to it later. It’s a cellular automata based physics engine, every single pixel is simulated. Technically it can support any world size but you might need to play around with the source code, it’s hard set at 1920x1080 rn. You can edit the cell behaviors as well. Wish you a nice day.
I implemented rigid bodies and more optimizations in this release. I wanted to implement detection of floating bodies and automatically turning them into rigid bodies but I realized it’s pointless. It needs to be solved in world gen then only do a basic check around an area of change....
|
1792835523.0156658
|
1792921923.0156658
|
|
36890
|
Mine and Dine - 26.2 Minecraft Mod by @RevComInter Mine and Dine - 26.2 Minecraft Mod by @RevComInteractives | Stardance...
|
RevComInteractives
|
2
|
86.0
|
1463
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-27T19:49:16Z", "hours": 29.0, "multiplier": 14.54, "payout": 420, "blessing": "neutral", "text": "Mine & Dine is a Minecraft mod that aims to overhaul the minecraft cooking system, because I always thought that it was a little bit shallow and lacked depth. Therefore I have set the goal for myself to transform the cooking system into something I always wanted. My mod adds six new blockentities and over 70 new items that do exactly that. (You can find a deeper explanation of the contents in my ReadMe) This mod is by far not finished but I think it’s gotten to a point where I would say it is playable and enjoyable, that’s why I decided to ship it now. Especially now that I’ve successfully ported it to version 26.2. What I’m especially proud of is how far my skills as a mod developer have come since I started this project. I have made a couple of smaller mods before the stardance challenge but never something quite like this. I was even able to upload it to Modrinth where the whole world can see it. (Modrinth is also the easiest way to play my mod btw) This step of shipping my final project for this challenge really feels like I’ve achieved something. Thanks in advance to everyone who plays my mod, I hope you’ll enjoy it. If you encounter any bugs (And its not unlikely you do) please report them on my github page. Anyways that’s everything I have to say for now, see you around!", "repo": "https://github.com/JhStudi0/MineAndDine-26.2", "demo": "https://modrinth.com/mod/mine-and-dine"}, {"ship_num": 2, "ts": "2026-09-01T19:51:42Z", "hours": 57.0, "multiplier": 18.17, "payout": 1043, "blessing": "neutral", "text": "Mine & Dine is a Minecraft mod that aims to overhaul the minecraft cooking system, because I always thought that it was a little bit shallow and lacked depth. Therefore I have set the goal for myself to transform the cooking system into something I always wanted. My mod adds five new blockentities and over 60 new items that do exactly that. (You can find a deeper explanation of the contents in my ReadMe) This mod is by far not finished but I think it’s gotten to a point where I would say it is playable and enjoyable, that’s why I decided to ship it now. What I’m especially proud of is how far my skills as a mod developer have come since I started this project. I have made a couple of smaller mods before the stardance challenge but never something quite like this. I was even able to upload it to Modrinth where the whole world can see it. (Modrinth is also the easiest way to play my mod) This step of shipping my first project really feels like I’ve achieved something. Thanks in advance to everyone who plays my mod, I hope you’ll enjoy it. If you encounter any bugs (And its not unlikely you do) please report them on my github page. Anyways that’s everything I have to say for now, see you around!", "repo": "https://github.com/JhStudi0/MineAndDine-26.2", "demo": "https://modrinth.com/mod/mine-and-dine"}]...
|
[{"post_id": 74612, "ts": "202 [{"post_id": 74612, "ts": "2026-09-27T19:38:37Z", "hours": 1.8344, "text": "Hi people! This will probably be my last update in this challenge as I have now finally fixed the bugs that were bothering me. The item renderers work now and have their actual colors. Also the progress arrow is now only one arrow and not 100. I’ll be shipping my project now in the hopes that it will get accepted and rated as well as the last time I shipped. By the way this doesn’t mean I’m done with the mod at all, I still think it could use more updates and improvements so my development is by no means finished. It’ll just happen outside of this challenge and maybe not as frequent as it did now. Anyways that’s all from me for now, I’ll hope to see you around!"}, {"post_id": 70876, "ts": "2026-09-19T22:15:59Z", "hours": 4.2711, "text": "Hi people! I’ve been busy the last couple of days and I can now announce that I can finally run my game again in Minecraft 26.2. So the majority of the update is finished! That being said there are some to be fair kind of funny bugs that I still need to fix (and honestly right now I don’t really have a clue how but oh well I guess we’ll have to see) One example is that somehow my progress arrow in my menu does this really weird thing where it just duplicates a couple times and stretches weirdly across my screen. I mean I don’t know what I did but I’m sure there’s a way to fix that. And the other thing is that for some to me unknown reason, my display items are just red. For example on my cutting board. They’re not at all supposed to look like that and the issue is consistent across all my item renders… Yeah honestly no clue why. Also the display doesnt dissapear when you craft and item but I already had that issue with the last version and I managed to fix that so I’m sure that won’t be a big problem. There are some minor bugs that I still have to resolve, like the item models of my blocks not loading in correctly or my item displays in the cooking pot not working but I’m sure that won’t be too difficult. Anyways that’s all from me for today, I’ll see you around!"}, {"post_id": 69362, "ts": "2026-09-16T21:54:54Z", "hours": 1.3753, "text": "Hi people! It’s looking a lot less red now, doesnt it? I’ve been able to update both the pan and the mixer to the newest version, and that leaves only the cutting board and the scraper before I’ll be able to finally run the game again (hopefully) So yeah I feel like I’m close to finally being finished with the update and then I can finally start working on actual new features. I want to add at least a little bit of actually new content before I ship again. Anyways that’s all from me for today, hope to see you around!"}, {"post_id": 68266, "ts": "2026-09-14T20:21:22Z", "hours": 2.2772, "text": "Hi people! My cooking pot is now working! (Hopefully) It took me longer than I expected because I had a lot of “fun” with the codec of the recipes. But thankfully now that that’s working I can recycle a lot of code for my pan and mixer which will hopefully make that part a lot easier. The cutting board and scraper will probably be another story though. But I’m positive that I’ll be able to finish everything by the ned of the week. That’s all from me for today see you around!"}, {"post_id": 67663, "ts": "2026-09-13T20:21:37Z", "hours": 2.4153, "text": "Hi people! My CornGrinderRecipeBuilder works again! That also means that I managed to get my corn grinder as a whole at least to a state where I would assume that it runs again. So yes, I have reworked both the custom block, teh block entity and the recipe handling. And let’s just say I wouldnt exactly say that I had fun… It’s just really annoying trying to find out why i cant refer to a method in another class only to then find out that I forgot that I forgot to rename one type. To apply that to what cost me the most time, I tried to call my tick() method from my block entity in the custom block (so the crafting actually progresses) but I forgot to change the type of my blockEntityType and it referred to the wrong blockentity. It took me forever to catch that problem. Anyways only five more crafting blockentities I have to port over frustrated scream . I just hope it will be easier since i now roughly know what I’m supposed to do. I can only hope now that school starts again for me… Anyways that’s everything from me today, see you around!"}, {"post_id": 66973, "ts": "2026-09-12T23:35:17Z", "hours": 6.5831, "text": "Hi people! I have been quiet for a few days now but trust me I’ve been busy. The port to the newest Minecraft version is almost complete so be on the lookout for that. Since I last posted a devlog I updated all the items, tags and the loottable modifiers. Also I updated the playerJoinEvent that gives you a cookbook when you first join into a world. Now to the places that still need updating: The ModBlocks, but just those with a blockentity with crafting functions. Therefore ModEntites and the custom recipe types and generators are obviously still missing too. And probably the least amount of work will be updating the missing recipes in my ModRecipeProvider class (It auto generates all my recipes) I have already updated the vanilla style recipes so the ones in a crafting table or oven but my custom recipes are still missing. And of course I gotta debug all my code when all that is done. Anyways I hope I’ll finish this update at some time next week so I can finally start adding some new stuff. That being said I don’t think I’ll be able to code as much starting from Monday, because where I live school is starting again so yeah… Anyways that’s all from me today, hope to see you around!"}, {"post_id": 64432, "ts": "2026-09-08T20:09:14Z", "hours": 2.0831, "text": "Hey people! So I decided to start porting my mod to 26.2 because I hate myself or something. This creenshot really captures my current state of mind quite well, and I’m really contemplating why I decided to do this. Well, it’s the next logical step that’s why I did it but it’s till so annoying. But seriously, why does Mojang have to change their code in every update? Anyways, by the time I uploaded this devlog, I was able to port most of the items plus the model generator which roughly leaves the blocks + their entities and screens and everything, the tag datagen, the cookbook pages (I dont want to) and all the recipes. Damn that’s a lot of work why did I sign up for this. Anyways that’s all from me today, see you around!"}, {"post_id": 64233, "ts": "2026-09-08T14:19:01Z", "hours": 8.0308, "text": "Hello people! I’ve been busy again. But before we dive into what I added I want to say thank you to everyone who rated my project so incredibly high. I couldn’t be happier with all the feedback you gave me. I want to address a few things though that I found which I think caused problems for some of the playtesters. I was under the assumption that the Modrinth version detection would work and therefor my mod was playable on all 1.21.X The problem is that the mod is only compatible with 1.21.1. As much as I would like to blame all of that on Modrinth I do have to admit that I could have just playtested it on the other versions. So to everyone who had problems with playing my mod I want to say a sorry and I hope that this fixes your issues. But now to what I’ve been doing the last couple of days: I’m from southern Germany and therefor I wanted to implement the most iconic dish from my region: Käsespätzle. Käsespätzle (something like cheese spaetzle in english) are like the german kind of noodles just baked with cheese. It may sound a but lame but trust me they are delicious. Now implementing them proved to be a bit more challenging than I had thought because I had no cheese whatsoever so I implemented that together with it’s aging mechanic. And furthermore spätzle are made on a special type of scraper which I also had to implement. It inserts the raw spätzle directly into the cooking pot. I’m currently also contemplating where I want to go with this mod. I’m not going to abandon it, that’s for sure but I just don’t know if i want to keep adding stuff in 1.21 or if I should migrate to the newest version of the game (that’s something that a lot of raters wanted) I’ll have to think about that a bit more but until then see you around!"}, {"post_id": 59779, "ts": "2026-09-01T18:30:25Z", "hours": 0.2781, "text": "Hello People! Today I just wanted to share a quick video with you. It shows how you make an apple pie in my mod. I thought it would be a good showcase for some of the mechanics my mod has to offer. And if the video quality isnt so good, I’m sorry but its the only way I could upload the video on this platform :( Anyways see you around!"}, {"post_id": 59078, "ts": "2026-08-31T18:05:33Z", "hours": 6.0342, "text": "Hi people! I’ve been busy the last couple of days and let me tell you I’m so close to shipping my first iteration of the mod. I’m so close to being done I just have a add a last few things and maybe film a few short showcases and then I’ll be ready to ship this thing. Anyways the most interesting additions that I added are a few new item (textures) and finally after weeks of them being untextured, my mixer and grinder have gotten their models. Anyways that’s all from me for today. The next time you’ll hear from me is probably with a ship so stay tuned. See you!"}, {"post_id": 54808, "ts": "2026-08-25T22:58:00Z", "hours": 2.2117, "text": "Hello people! As promised I have finished the cookbook (at least to a point where I’d say it’s complete enough) and I can now give you some sneakpeeks. Sadly I cant show you everything ‘cause I can only attach four pictures but I think I got a good selection. So the first picture you can see is the opening page of the cookbook, so just some general stuff. The second picture shows a segment of the contents list. All the pink things are links to the corresponding pages you can click on to quickly navigate through the book. And lastly you can see an extract from one of the recipes (in this case for an apple pie). I’m somewhat happy with the design but I’m especially happy with the display of the item on the corresponding page. It is defintely a pain to set up (at least the way I did it) but I think it’s well worth it. But I think that’s all from me for today. I’ll be adding the last textures and little things over the next few days so I can finally push out my first ship :) See you around!"}, {"post_id": 54153, "ts": "2026-08-24T23:55:27Z", "hours": 8.1442, "text": "Hello people! I havent posted anything in quite some time but trust me I’ve been busy. The reason why I’ve shown you so little is because there isn’t much that I could show you. I’ve added a lot of background stuff that I just had to add because I’m planning on shipping soon. One sneakpeak I can give you is this (see picture). Any idea what it is? Well I’ll tell you: It’s a cookbook. I think it’s nice for the immersion if you have a cookbook where you can find all the cooking recipes for my mod. I’ll show you more about it in the future once I’m done with it. Until then that’s all from me. Hope to see you around!"}, {"post_id": 50679, "ts": "2026-08-19T23:55:47Z", "hours": 1.1469, "text": "Hello people! You can now enjoy a nice apple pie at your farm because I have been busy. I added eight new items today to aid you on your cooking journey. First I added cinnamon sticks and powder. Right now you get cinnamon sticks from stripping jungle logs on a cutting board. I’m planning on adding actual cinnamon trees in the future but for now I figured jungle wood would be the most fitting since cinnamon is also a tropical plant. With the addtition of cinnamon I finally made it possible to craft pumpkin pie with the mechanics of my mod. That’s also why I added the middle row of items. On the left we have the pumkin slice which you can bake into the grilled pumpkin slice (middle). I’ll probably have to rework this texture in the future cause you can’t really tell the difference :P. And with that item you can then craft the unbaked pumpkin pie which, as the name suggests, can be baked into the minecraft pumpkin pie. The last three items I added are for my apple pie. First up we have apple chunks which you can then use to make the unbaked apple pie which of course can be baked into the finished apple pie. I hope you like my new additions and that’s also everything from me for today. See you around :)"}, {"post_id": 49899, "ts": "2026-08-18T21:16:14Z", "hours": 1.3992, "text": "Hi people! I’ve been doing a lot of background work today for future stuff so sadly I don’t have too much to show you today. I still coded some more things that I can already hsow you that are worth taking the look at. On the left is the new powdered sugar that you get by grinding sugar in the grinder. It is also used to craft the next item, the pie dough in the mixer. On the cutting board oyu can then transform the dough into the pie base. This item will be used later when making different kinds of pies. What I immediately have in mind is of course the oumpkin pie that is already in vanilla minecraft but also the apple pie and the sweet berry pie. Both of these fruits are of course already in the base game so I think the addition of a pie would make sense. I’m also planning on adding more fruit so I can add more pies. Anyways that’s all from me for today, see you around :)"}, {"post_id": 49262, "ts": "2026-08-17T23:15:11Z", "hours": 1.035, "text": "Hello People! I’ve worked a bit more on expanding the cutting board functionality. I’ve added another tool that can be used in the recipes and that’s the rolling pin (first pic, top left) It does exactly what it sounds like it flattens the ingredients, like for example with my tortilla dough (top right). You can see the process in the second picture. And because it would have felt weird to stop the production chain there, I added the function to put the raw torilla into my frying pan where it gets fired into a finished tortilla. I’m really looking forward on adding more recipes with my tortilla but for now I’m kind of missing some more ingredients, like red beans that I want to put in there. Anyways, that’s all I have time for today :( I’ll see you around :)"}, {"post_id": 48545, "ts": "2026-08-16T23:47:04Z", "hours": 1.04, "text": "Hi people! I’ve been putting my new block entities to some good use today. (From left to right) First of all I added the bun dough. You get it by cutting bread dough on the cutting board. Then there is the bun which you obviously get by smelting bun dough in a furnance. Next up is the cookie dough. You get it by mixing the needed ingredients for a cookie in a mixer. And last is the heavy cream. I’ve added the item a little while back but only now found the time and motivation (especially the latter XD) to make the texture and give it a proper crafting recipe. You get it by mixing milk and butter in the mixer. I believe that that is roughly how heavy cream is made in real life, at least after my five minute google research. I’ve also added crafting recipes for some other things but those aren’t anything special really just in a crafting table. Anyways that’s all from me today, see you around :)"}, {"post_id": 47737, "ts": "2026-08-15T21:06:10Z", "hours": 3.92, "text": "Okay damn I didn’t think that this would take me this long But hi people! I finally added a cutting board to my mod! It came up a while back as a suggestion for how to get my chicken legs and let me say I think it was a good suggestion. The cutting board just fits right in. It works pretty much as you may know it from farmer’s delight, where you put an item on it and then click on it with a tool in this case a knife (which I also added today but that was pretty simple) and it drops the outcome. I’m planning on adding onto that mechanic with more tools like a roling pin for example and definitely more recipes. I have to say now that it is in the game I really like it but damn was it annoying to implement. I mean it was my fault (I forgot one function so it didn’t work) but it nontheless send me down an existentiell crisis ‘cause there was no error message whatsoever. Don’t we love that XD Anyways that’s all from me for today, I’ll see you around :)"}, {"post_id": 47170, "ts": "2026-08-14T21:14:02Z", "hours": 0.7811, "text": "Hello people! I didn’t have a lot of time today since I’m currently renovating my new room :) and it takes a lot of time. Anyways I still managed to get something done today and that is working on the immersion of my mod. The cooking pot and pan now emit smoke when they are cooking. That’s all from me today and I’ll hopefully get back to you with more things :) See ya!"}, {"post_id": 46592, "ts": "2026-08-13T22:46:26Z", "hours": 1.5181, "text": "Hi People! Today I added another Block Entity: The mixer. It works similarly to the cooking pot and pan so I was able to copy a lot of that code. I just had to add the rest of the slots and remove the container slot. I’ll use the mixer as a way to make different kinds of doughs later but for now it can just make bread dough, you can bake into bread in a furnance. I’m really looking forward on making pasta dough and then expanding on that. I was kind of thinking of making a noodle press so you can make different kinds of pasta (I’m speaking spagetti, tortelini, etc.) I kind of want it to work like a stone cutter, where you put in the dough and then select one shape of noodle. But those are still thoughts for the future. Anyways that’s all from me today, see you next time :)"}, {"post_id": 46033, "ts": "2026-08-12T23:12:08Z", "hours": 1.6828, "text": "Hello people! I’ve been somewhat productive today: So first of all I added a provisional model for my pan. Its that orange thing next to the cooking pot. Then I’ve also reworked the crafting logic of my pan so it supports recipes that don’t need a bowl or similar, like you can see in the second picture. I feel like for the vanilla meat items that apporach makes the most sense. And I’ve added sunflower seeds, ground sunflower seeds and sunflower oil into my game. For now you just have to believe me, because I dont have any textures made for them just yet XD. In the third screenshot you can see how sunflower seeds are ground into ground sunflower seeds. In the last picture you can see the crafting recipe for sunflower oil fron ground sunflower seeds. It’s very simplified from the way one would actually make sunflower oil but it’s still just minecraft so I think it fits. Anyways that’s everything I have for you today, see you tomorrow!"}, {"post_id": 45458, "ts": "2026-08-11T22:46:37Z", "hours": 2.2208, "text": "Hi people! I’m back from my holidays in London so I can finally continue the project. It’s been a while so I felt motivated and decided to start adding a new block entity: the pan! So far the block entity already has a screen but there are still a few things missing, like the model/texture and a proper crafting system. So far I can only implement recipes with a container like a bowl or plate (since I recycled a lot of code from my cooking pot) but that wouldnt make a lot of sense if I just wanted to get e.g. the standard minecraft cooked beef since it has no container, so yeah, I’ll have to find a way to make that work. I also added a new decoravtive block: the counter. It’s the brick with a layer of polished deepslate at the top. And I’ve found out that it not only works well as a counter but also as the top of a brisk wall. Anyways that’s all I had time for today, see you tomorrow!"}, {"post_id": 40198, "ts": "2026-08-03T16:29:35Z", "hours": 1.3703, "text": "Hi people! This is probably the last devlog I’ll post before I leave for a week to go on vacation to London, unless I get a sudden sweep of motivation or somthing XD. Anyways I got some new stuff for you. So first you see the work of my boredom, my farm that I build. Then I finally added the stove with texture and everything so that’s done now. And to celebrate that I added the carrot soup that can be crafted in the cooking pot. And I’ve added the new garlic crop with seeds and the garlic itself of course. Not really sure yet what I’m going to do with that but better have it than not have it. Besides garlic bread is always an answer, am I right. Anyways that’s all from me for today, see you guys in a week or so :)"}, {"post_id": 39687, "ts": "2026-08-02T20:29:38Z", "hours": 2.6472, "text": "New Crop Alert! Meet the newest crop addition to Mine and Dine: The onion can now be grown. On my way to making my mod survival friendly this really helps quite a lot. The onion can, like the other seeds, be obtained through breaking grass. But to be honest texturing the growth stages of a crop will forever be the most annoying part of the process. I’ve also done some more tweaking, like adding sounds and map colors to my blocks. Plus a I added a German language pack to my mod. Here are some of my favourite (with that I mean wildest) translations: Vanilla Bean Seeds = Vanilleschotensamen Dark Chocolate covered Apple = Apfel mit Zartbitterschokoladenüberzug And the other ones sound kind of weird too, even though German is my mother tongue. Guess it really does’nt make a difference if you read the english version all the time without thinking of the translation XD Anyways have a good day and see you next time."}, {"post_id": 39187, "ts": "2026-08-01T23:47:08Z", "hours": 0.3183, "text": "Didn’t have time for much toady so all i did was finally create a loot table for my block entities and implemented their strength so they wouldn’t be instamine anymore. (I know the dropped cooking pot is a bit big but I’ll change that in the future.) See you next time :)"}, {"post_id": 38495, "ts": "2026-07-31T22:06:56Z", "hours": 0.8517, "text": "Here’s my devlog for toady :) So I played around a bit with my cooking pot and added the function that they only work, when they have a warm block underneath them, like the ones you can see below. What I’m working on next is probably something like a stove so you can have a nice looking block that gives off heat because all the warm blocks look a bit weird and I don’t think it would make sense to count a furnance that isn’t on as a warm block. I also made three new item models to complete them one after another. From left to right we now have the oinigiri, the salmon sushi, the cod sushi and an item model for my plate because i thought it would look better to have a 2d texture instead of the 3d model. Hope to see you in my next devlog :) and feel free to leave suggestions on what I could add to my mod."}, {"post_id": 37633, "ts": "2026-07-30T14:49:09Z", "hours": 3.5092, "text": "Now that the summer holidays have finally begun where I live I can finally show you the working cooking pot. While the model (the thing on the burning furnance) defintely needs a rework I’m pretty happy with the function. The most annoying part defintely was getting the screen (the menu) to run and look correctly. I currently have the crafting recipe for cooking rice and tomato sauce implemented and I’m working on adding the vanilla soup/stews but there are still a few textures missing until I want to show you those. Anyways feel free to leave some ideas on recipes to add in the comments, see you next time :)"}, {"post_id": 36571, "ts": "2026-07-28T19:40:24Z", "hours": 1.5392, "text": "Currently working on giving this little thing a proper function. For now it was just my earliest Block Entity experiement, but now I want to give my cooking pot an actual fuction. I want it to function similarly to Farmer’s Delight’s pot. So the crafting doesnt follow a shape, but is shapeless. I already have rewritten a lot like the custom block and block entity and I’ve written the cooking pot recipe (input). Thankfully I was able to recycle a lot of code from my grinder. The big task now is to rewrite the screen and screen handler and to make the whole thing work as a whole so I can finally craft everything I want :) Can’t wait to finish this! I’d love some suggestions on where to go on from the finished cooking pot. I’ve already thought about adding a frying pan, which would make sense in my head since you don’t cook everything in a pot."}, {"post_id": 35944, "ts": "2026-07-27T18:35:20Z", "hours": 0.7631, "text": "On my road to making my mod survival friendly, I have now added all my seeds to the loot table of short and tall grass.It took longer than I had hoped for because I may or may not have forgotten that silk touch has no effect on grass and I may or may not have tried to implement the silk touch exception regardless.Wasn’t exactly my brightest moments once i figured it out after like 20 minutes of wasting my time."}, {"post_id": 35214, "ts": "2026-07-26T14:30:57Z", "hours": 1.3289, "text": "It’s me again! My grinder now has a custom recipe type. It can now grind sugarcane into sugar as well as wheat into flour. That’s also the reason why I decided to rename it just into grinder. I think it fits the purpose a bit better. I even managed to add a way to get my recipes to get easily generated with the fabric data gen. And I added a grilled corn cib because I wanted to. Now my focus will probably shift towards making what I have survival friendly because for now the mod only work in creative. For the different kinds of seeds I think I’ll just add them to the loot table to grass, like wheat seeds. But I’m always open for better suggestions!"}, {"post_id": 34580, "ts": "2026-07-25T13:03:48Z", "hours": 1.4089, "text": "My Corn Grinder is now a Block Entity! It has an inventory now where you can input your wheat to get flour. Next I will add a custom recipe type so I can add more types of things to grind down. I was thinking about grinding corn seeds into corn flour for example so in the future I could add nachos or taco shells. I’d be open for more suggestions on what grinding recipes to add."}, {"post_id": 34344, "ts": "2026-07-24T23:15:12Z", "hours": 1.5892, "text": "So I didnt code a lot today that I can show you because it’s all still unfinished and doesnt work but I have other exciting news: My mod got approved on Modrinth so you can download it through the Modrinth Website now! Please keep in mind that I have a version from a few days back on there so it’s not perfectly up to date but it’s still a playable version (in creative, though I’m working on making it survival friendly) Here’s a screenshot of my mod’s page:"}, {"post_id": 33640, "ts": "2026-07-23T18:31:51Z", "hours": 0.6331, "text": "Hi people! Didn’t have time for much today, so all I did was restucture my Item Groups a bit to have them in a logical order. So now there are Seeds, Ingredients, finished Dishes and Utensils."}, {"post_id": 33102, "ts": "2026-07-22T18:31:45Z", "hours": 1.7647, "text": "I mentioned it in an earlier devlog and now here they are: the plates! They can be placed down to display you’re crafted dishes (and other items). The texture is still to be made properly."}, {"post_id": 32577, "ts": "2026-07-21T20:56:34Z", "hours": 0.3733, "text": "Didn’t have time for much so I just added two new items: chicken legs and onigiris. The latter already has a crafting recipe. For the chicken leg I still have to figure out how I want it to be obtainable."}, {"post_id": 31950, "ts": "2026-07-20T19:25:31Z", "hours": 2.7164, "text": "Hi guys, here’s my devlog for today. So down below you can see a few new items, some of which I havent textured yet (shame on me). (from left to right) A bowl of rice, yeast, fermented yeast, dough (which you can bake into bread) and sushi with cod and salmon. On the left you can also see that I experimented a bit with block entities and I think i will turn this conept into some sort of display plate that would also be used for crafting dishes in the future. Anyways hope you liked my little devlog for today, see you for the next one :)"}, {"post_id": 31441, "ts": "2026-07-19T20:12:44Z", "hours": 1.1936, "text": "Alright fixed it. Thankfully the mods running again and I even got the alpha-1.1 version up on modrinth for approval. I’ll keep you updated once its live."}, {"post_id": 31364, "ts": "2026-07-19T18:07:29Z", "hours": 2.9633, "text": "Currently fixing my modpack :( I tried to make it into a git repo and it broke and now I have to do it all again. Thankfully I can just copy over the code but it’s still really annoying. I’ll keep you updated. In the meantime enjoy a picture of an older 3d model of mine."}, {"post_id": 30779, "ts": "2026-07-18T17:32:00Z", "hours": 0.6333, "text": "It might not look like it but this is a custom block I programmed. It’s a grinder used for grinding down things like wheat into flour. The model’s obviously not made yet but I’m definitely going to do it at some point."}, {"post_id": 30726, "ts": "2026-07-18T15:28:41Z", "hours": 0.3822, "text": "Hi people this is the first devlog on my Minecraft cooking mod in which I aim to overhaul the cooking system in minecraft. attached are some screenshots on what I’ve been working on so far. I’ve added a couple new food items and there will be many more to come."}]...
|
Title: Mine and Dine - 26.2 Minecraft Mod by @RevC Title: Mine and Dine - 26.2 Minecraft Mod by @RevComInteractives | Stardance
Devlogs:
Hi people this is the first devlog on my Minecraft cooking mod in which I aim to overhaul the cooking system in minecraft. attached are some screenshots on what I’ve been working on so far. I’ve added a couple new food items and there will be many more to come.
It might not look like it but this is a custom block I programmed. It’s a grinder used for grinding down things like wheat into flour. The model’s obviously not made yet but I’m definitely going to do it at some point.
Currently fixing my modpack :( I tried to make it into a git repo and it broke and now I have to do it all again. Thankfully I can just copy over the code but it’s still really annoying. I’ll keep you updated. In the meantime enjoy a picture of an older 3d model of mine.
Alright fixed it. Thankfully the mods running again and I even got the alpha-1.1 version up on modrinth for approval. I’ll keep you updated once its live.
Hi guys, here’s my devlog for today. So down below you can see a few new items, some of which I havent textured yet (shame on me). (from left to right) A bowl of rice, yeast, fermented yeast, dough (which you can bake into bread) and sushi with cod and salmon. On the left you can also see that I experimented a bit with block entities and I think i will turn this conept into some sort of display plate that would also be used for crafting dishes in the future. Anyways hope you liked my little devlog for today, see you for the next one :)
Didn’t have time for much so I just added two new items: chicken legs and onigiris. The latter already has a crafting recipe. For the chicken leg I still have to figure out how I want it to be obtainable.
I mentioned it in an earlier devlog and now here they are: the plates! They can be placed down to display you’re crafted dishes (and other items). The texture is still to be made properly.
Hi people! Didn’t have time for much today, so all I did was restucture my Item Groups a bit to have them in a logical order. So now there are Seeds, Ingredients, finished Dishes and Utensils.
So I didnt code a lot today that I can show you because it’s all still unfinished and doesnt work but I have other exciting news: My mod got approved on Modrinth so you can download it through the Modrinth Website now! Please keep in mind that I have a version from a few days back on there so it’s not perfectly up to date but it’s still a playable version (in creative, though I’m working on making it survival friendly) Here’s a screenshot of my mod’s page:
My Corn Grinder is now a Block Entity! It has an inventory now where you can input your wheat to get flour. Next I will add a custom recipe type so I can add more types of things to grind down. I was thinking about grinding corn seeds into corn flour for example so in the future I could add nachos or taco shells. I’d be open for more suggestions on what grinding recipes to add.
It’s me again! My grinder now has a custom recipe type. It can now grind sugarcane into sugar as well as wheat into flour. That’s also the reason why I decided to rename it just into grinder. I think it fits the purpose a bit better. I even managed to add a way to get my recipes to get easily generated with the fabric data gen. And I added a grilled corn cib because I wanted to. Now my focus will probably shift towards making what I have survival friendly because for now the mod only work in creative. For the different kinds of seeds I think I’ll just add them to the loot table to grass, like wheat seeds. But I’m always open for better suggestions!
On my road to making my mod survival friendly, I have now added all my seeds to the loot table of short and tall grass.It took longer than I had hoped for because I may or may not have forgotten that silk touch has no effect on grass and I may or may not have tried to implement the silk touch exception regardless.Wasn’t exactly my brightest moments once i figured it out after like 20 minutes of wasting my time.
Currently working on giving this little thing a proper function. For now it was just my earliest Block Entity experiement, but now I want to give my cooking pot an actual fuction. I want it to function similarly to Farmer’s Delight’s pot. So the crafting doesnt follow a shape, but is shapeless. I already have rewritten a lot like the custom block and block entity and I’ve written the cooking pot recipe (input). Thankfully I was able to recycle a lot of code from my grinder. The big task now is to rewrite the screen and screen handler and to make the whole thing work as a whole so I can finally craft everything I want :) Can’t wait to finish this! I’d love some suggestions on where to go on from the finished cooking pot. I’ve already thought about adding a frying pan, which would make sense in my head since you don’t cook everything in a pot.
Now that the summer holidays have finally begun where I live I can finally show you the working cooking pot. While the model (the thing on the burning furnance) defintely needs a rework I’m pretty happy with the function. The most annoying part defintely was getting the screen (the menu) to run and look correctly. I currently have the crafting recipe for cooking rice and tomato sauce implemented and I’m working on adding the vanilla soup/stews but there are still a few textures missing until I want to show you those. Anyways feel free to leave some ideas on recipes to add in the comments, see you next time :)
Here’s my devlog for toady :) So I played around a bit with my cooking pot and added the function that they only work, when they have a warm block underneath them, like the ones you can see below. What I’m working on next is probably something like a stove so you can have a nice looking block that gives off heat because all the warm blocks look a bit weird and I don’t think it would make sense to count a furnance that isn’t on as a warm block. I also made three new item models to complete them one after another. From left to right we now have the oinigiri, the salmon sushi, the cod sushi and an item model for my plate because i thought it would look better to have a 2d texture instead of the 3d model. Hope to see you in my next devlog :) and feel free to leave suggestions on what I could add to my mod.
Didn’t have time for much toady so all i did was finally create a loot table for my block entities and implemented their strength so they wouldn’t be instamine anymore. (I know the dropped cooking pot is a bit big but I’ll change that in the future.) See you next time :)
New Crop Alert! Meet the newest crop addition to Mine and Dine: The onion can now be grown. On my way to making my mod survival friendly this really helps quite a lot. The onion can, like the other seeds, be obtained through breaking grass. But to be honest texturing the growth stages of a crop will forever be the most annoying part of the process. I’ve also done some more tweaking, like adding sounds and map colors to my blocks. Plus a I added a German language pack to my mod. Here are some of my favourite (with that I mean wildest) translations: Vanilla Bean Seeds = Vanilleschotensamen Dark Chocolate covered Apple = Apfel mit Zartbitterschokoladenüberzug And the other ones sound kind of weird too, even though German is my mother tongue. Guess it really does’nt make a difference if you read the english version all the time without thinking of the translation XD Anyways have a good day and see you next time.
Hi people! This is probably the last devlog I’ll post before I leave for a week to go on vacation to London, unless I get a sudden sweep of motivation or somthing XD. Anyways I got some new stuff for you. So first you see the work of my boredom, my farm that I build. Then I finally added the stove with texture and everything so that’s done now. And to celebrate that I added the carrot soup that can be crafted in the cooking pot. And I’ve added the new garlic crop with seeds and the garlic itself of course. Not really sure yet what I’m going to do with that but better have it than not have it. Besides garlic bread is always an answer, am I right. Anyways that’s all from me for today, see you guys in a week or so :)
Hi people! I’m back from my holidays in London so I can finally continue the project. It’s been a while so I felt motivated and decided to start adding a new block entity: the pan! So far the block entity already has a screen but there are still a few things missing, like the model/texture and a proper crafting system. So far I can only implement recipes with a container like a bowl or plate (since I recycled a lot of code from my cooking pot) but that wouldnt make a lot of sense if I just wanted to get e.g. the standard minecraft cooked beef since it has no container, so yeah, I’ll have to find a way to make that work. I also added a new decoravtive block: the counter. It’s the brick with a layer of polished deepslate at the top. And I’ve found out that it not only works well as a counter but also as the top of a brisk wall. Anyways that’s all I had time for today, see you tomorrow!
Hello people! I’ve been somewhat productive today: So first of all I added a provisional model for my pan. Its that orange thing next to the cooking pot. Then I’ve also reworked the crafting logic of my pan so it supports recipes that don’t need a bowl or similar, like you can see in the second picture. I feel like for the vanilla meat items that apporach makes the most sense. And I’ve added sunflower seeds, ground sunflower seeds and sunflower oil into my game. For now you just have to believe me, because I dont have any textures made for them just yet XD. In the third screenshot you can see how sunflower seeds are ground into ground sunflower seeds. In the last picture you can see the crafting recipe for sunflower oil fron ground sunflower seeds. It’s very simplified from the way one would actually make sunflower oil but it’s still just minecraft so I think it fits. Anyways that’s everything I have for you today, see you tomorrow!
Hi People! Today I added another Block Entity: The mixer. It works similarly to the cooking pot and pan so I was able to copy a lot of that code. I just had to add the rest of the slots and remove the container slot. I’ll use the mixer as a way to make different kinds of doughs later but for now it can just make bread dough, you can bake into bread in a furnance. I’m really looking forward on making pasta dough and then expanding on that. I was kind of thinking of making a noodle press so you can make different kinds of pasta (I’m speaking spagetti, tortelini, etc.) I kind of want it to work like a stone cutter, where you put in the dough and then select one shape of noodle. But those are still thoughts for the future. Anyways that’s all from me today, see you next time :)
Hello people! I didn’t have a lot of time today since I’m currently renovating my new room :) and it takes a lot of time. Anyways I still managed to get something done today and that is working on the immersion of my mod. The cooking pot and pan now emit smoke when they are cooking. That’s all from me today and I’ll hopefully get back to you with more things :) See ya!
Okay damn I didn’t think that this would take me this long But hi people! I finally added a cutting board to my mod! It came up a while back as a suggestion for how to get my chicken legs and let me say I think it was a good suggestion. The cutting board just fits right in. It works pretty much as you may know it from farmer’s delight, where you put an item on it and then click on it with a tool in this case a knife (which I also added today but that was pretty simple) and it drops the outcome. I’m planning on adding onto that mechanic with more tools like a roling pin for example and definitely more recipes. I have to say now that it is in the game I really like it but damn was it annoying to implement. I mean it was my fault (I forgot one function so it didn’t work) but it nontheless send me down an existentiell crisis ‘cause there was no error message whatsoever. Don’t we love that XD Anyways that’s all from me for today, I’ll see you around :)
Hi people! I’ve been putting my new block entities to some good use today. (From left to right) First of all I added the bun dough. You get it by cutting bread dough on the cutting board. Then there is the bun which you obviously get by smelting bun dough in a furnance. Next up is the cookie dough. You get it by mixing the needed ingredients for a cookie in a mixer. And last is the heavy cream. I’ve added the item a little while back but only now found the time and motivation (especially the latter XD) to make the texture and give it a proper crafting recipe. You get it by mixing milk and butter in the mixer. I believe that that is roughly how heavy cream is made in real life, at least after my five minute google research. I’ve also added crafting recipes for some other things but those aren’t anything special really just in a crafting table. Anyways that’s all from me today, see you around :)
Hello People! I’ve worked a bit more on expanding the cutting board functionality. I’ve added another tool that can be used in the recipes and that’s the rolling pin (first pic, top left) It does exactly what it sounds like it flattens the ingredients, like for example with my tortilla dough (top right). You can see the process in the second picture. And because it would have felt weird to stop the production chain there, I added the function to put the raw torilla into my frying pan where it gets fired into a finished tortilla. I’m really looking forward on adding more recipes with my tortilla but for now I’m kind of missing some more ingredients, like red beans that I want to put in there. Anyways, that’s all I have time for today :( I’ll see you around :)
Hi people! I’ve been doing a lot of background work today for future stuff so sadly I don’t have too much to show you today. I still coded some more things that I can already hsow you that are worth taking the look at. On the left is the new powdered sugar that you get by grinding sugar in the grinder. It is also used to craft the next item, the pie dough in the mixer. On the cutting board oyu can then transform the dough into the pie base. This item will be used later when making different kinds of pies. What I immediately have in mind is of course the oumpkin pie that is already in vanilla minecraft but also the apple pie and the sweet berry pie. Both of these fruits are of course already in the base game so I think the addition of a pie would make sense. I’m also planning on adding more fruit so I can add more pies. Anyways that’s all from me for today, see you around :)
Hello people! You can now enjoy a nice apple pie at your farm because I have been busy. I added eight new items today to aid you on your cooking journey. First I added cinnamon sticks and powder. Right now you get cinnamon sticks from stripping jungle logs on a cutting board. I’m planning on adding actual cinnamon trees in the future but for now I figured jungle wood would be the most fitting since cinnamon is also a tropical plant. With the addtition of cinnamon I finally made it possible to craft pumpkin pie with the mechanics of my mod. That’s also why I added the middle row of items. On the left we have the pumkin slice which you can bake into the grilled pumpkin slice (middle). I’ll probably have to rework this texture in the future cause you can’t really tell the difference :P. And with that item you can then craft the unbaked pumpkin pie which, as the name suggests, can be baked into the minecraft pumpkin pie. The last three items I added are for my apple pie. First up we have apple chunks which you can then use to make the unbaked apple pie which of course can be baked into the finished apple pie. I hope you like my new additions and that’s also everything from me for today. See you around :)
Hello people! I havent posted anything in quite some time but trust me I’ve been busy. The reason why I’ve shown you so little is because there isn’t much that I could show you. I’ve added a lot of background stuff that I just had to add because I’m planning on shipping soon. One sneakpeak I can give you is this (see picture). Any idea what it is? Well I’ll tell you: It’s a cookbook. I think it’s nice for the immersion if you have a cookbook where you can find all the cooking recipes for my mod. I’ll show you more about it in the future once I’m done with it. Until then that’s all from me. Hope to see you around!
Hello people! As promised I have finished the cookbook (at least to a point where I’d say it’s complete enough) and I can now give you some sneakpeeks. Sadly I cant show you everything ‘cause I can only attach four pictures but I think I got a good selection. So the first picture you can see is the opening page of the cookbook, so just some general stuff. The second picture shows a segment of the contents list. All the pink things are links to the corresponding pages you can click on to quickly navigate through the book. And lastly you can see an extract from one of the recipes (in this case for an apple pie). I’m somewhat happy with the design but I’m especially happy with the display of the item on the corresponding page. It is defintely a pain to set up (at least the way I did it) but I think it’s well worth it. But I think that’s all from me for today. I’ll be adding the last textures and little things over the next few days so I can finally push out my first ship :) See you around!
Hi people! I’ve been busy the last couple of days and let me tell you I’m so close to shipping my first iteration of the mod. I’m so close to being done I just have a add a last few things and maybe film a few short showcases and then I’ll be ready to ship this thing. Anyways the most interesting additions that I added are a few new item (textures) and finally after weeks of them being untextured, my mixer and grinder have gotten their models. Anyways that’s all from me for today. The next time you’ll hear from me is probably with a ship so stay tuned. See you!
Hello People! Today I just wanted to share a quick video with you. It shows how you make an apple pie in my mod. I thought it would be a good showcase for some of the mechanics my mod has to offer. And if the video quality isnt so good, I’m sorry but its the only way I could upload the video on this platform :( Anyways see you around!
Hello people! I’ve been busy again. But before we dive into what I added I want to say thank you to everyone who rated my project so incredibly high. I couldn’t be happier with all the feedback you gave me. I want to address a few things though that I found which I think caused problems for some of the playtesters. I was under the assumption that the Modrinth version detection would work and therefor my mod was playable on all 1.21.X The problem is that the mod is only compatible with 1.21.1. As much as I would like to blame all of that on Modrinth I do have to admit that I could have just playtested it on the other versions. So to everyone who had problems with playing my mod I want to say a sorry and I hope that this fixes your issues. But now to what I’ve been doing the last couple of days: I’m from southern Germany and therefor I wanted to implement the most iconic dish from my region: Käsespätzle. Käsespätzle (something like cheese spaetzle in english) are like the german kind of noodles just baked with cheese. It may sound a but lame but trust me they are delicious. Now implementing them proved to be a bit more challenging than I had thought because I had no cheese whatsoever so I implemented that together with it’s aging mechanic. And furthermore spätzle are made on a special type of scraper which I also had to implement. It inserts the raw spätzle directly into the cooking pot. I’m currently also contemplating where I want to go with this mod. I’m not going to abandon it, that’s for sure but I just don’t know if i want to keep adding stuff in 1.21 or if I should migrate to the newest version of the game (that’s something that a lot of raters wanted) I’ll have to think about that a bit more but until then see you around!
Hey people! So I decided to start porting my mod to 26.2 because I hate myself or something. This creenshot really captures my current state of mind quite well, and I’m really contemplating why I decided to do this. Well, it’s the next logical step that’s why I did it but it’s till so annoying. But seriously, why does Mojang have to change their code in every update? Anyways, by the time I uploaded this devlog, I was able to port most of the items plus the model generator which roughly leaves the blocks + their entities and screens and everything, the tag datagen, the cookbook pages (I dont want to) and all the recipes. Damn that’s a lot of work why did I sign up for this. Anyways that’s all from me today, see you around!
Hi people! I have been quiet for a few days now but trust me I’ve been busy. The port to the newest Minecraft version is almost complete so be on the lookout for that. Since I last posted a devlog I updated all the items, tags and the loottable modifiers. Also I updated the playerJoinEvent that gives you a cookbook when you first join into a world. Now to the places that still need updating: The ModBlocks, but just those with a blockentity with crafting functions. Therefore ModEntites and the custom recipe types and generators are obviously still missing too. And probably the least amount of work will be updating the missing recipes in my ModRecipeProvider class (It auto generates all my recipes) I have already updated the vanilla style recipes so the ones in a crafting table or oven but my custom recipes are still missing. And of course I gotta debug all my code when all that is done. Anyways I hope I’ll finish this update at some time next week so I can finally start adding some new stuff. That being said I don’t think I’ll be able to code as much starting from Monday, because where I live school is starting again so yeah… Anyways that’s all from me today, hope to see you around!
Hi people! My CornGrinderRecipeBuilder works again! That also means that I managed to get my corn grinder as a whole at least to a state where I would assume that it runs again. So yes, I have reworked both the custom block, teh block entity and the recipe handling. And let’s just say I wouldnt exactly say that I had fun… It’s just really annoying trying to find out why i cant refer to a method in another class only to then find out that I forgot that I forgot to rename one type. To apply that to what cost me the most time, I tried to call my tick() method from my block entity in the custom block (so the crafting actually progresses) but I forgot to change the type of my blockEntityType and it referred to the wrong blockentity. It took me forever to catch that problem. Anyways only five more crafting blockentities I have to port over frustrated scream . I just hope it will be easier since i now roughly know what I’m supposed to do. I can only hope now that school starts again for me… Anyways that’s everything from me today, see you around!
Hi people! My cooking pot is now working! (Hopefully) It took me longer than I expected because I had a lot of “fun” with the codec of the recipes. But thankfully now that that’s working I can recycle a lot of code for my pan and mixer which will hopefully make that part a lot easier. The cutting board and scraper will probably be another story though. But I’m positive that I’ll be able to finish everything by the ned of the week. That’s all from me for today see you around!
Hi people! It’s looking a lot less red now, doesnt it? I’ve been able to update both the pan and the mixer to the newest version, and that leaves only the cutting board and the scraper before I’ll be able to finally run the game again (hopefully) So yeah I feel like I’m close to finally being finished with the update and then I can finally start working on actual new features. I want to add at least a little bit of actually new content before I ship again. Anyways that’s all from me for today, hope to see you around!
Hi people! I’ve been busy the last couple of days and I can now announce that I can finally run my game again in Minecraft 26.2. So the majority of the update is finished! That being said there are some to be fair kind of funny bugs that I still need to fix (and honestly right now I don’t really have a clue how but oh well I guess we’ll have to see) One example is that somehow my progress arrow in my menu does this really weird thing where it just duplicates a couple times and stretches weirdly across my screen. I mean I don’t know what I did but I’m sure there’s a way to fix that. And the other thing is that for some to me unknown reason, my display items are just red. For example on my cutting board. They’re not at all supposed to look like that and the issue is consistent across all my item renders… Yeah honestly no clue why. Also the display doesnt dissapear when you craft and item but I already had that issue with the last version and I managed to fix that so I’m sure that won’t be a big problem. There are some minor bugs that I still have to resolve, like the item models of my blocks not loading in correctly or my item displays in the cooking pot not working but I’m sure that won’t be too difficult. Anyways that’s all from me for today, I’ll see you around!
Hi people! This will probably be my last update in this challenge as I have now finally fixed the bugs that were bothering me. The item renderers work now and have their actual colors. Also the progress arrow is now only one arrow and not 100. I’ll be shipping my project now in the hopes that it will get accepted and rated as well as the last time I shipped. By the way this doesn’t mean I’m done with the mod at all, I still think it could use more updates and improvements so my development is by no means finished. It’ll just happen outside of this challenge and maybe not as frequent as it did now. Anyways that’s all from me for now, I’ll hope to see you around!
Ships:
Mine & Dine is a Minecraft mod that aims to overhaul the minecraft cooking system, because I always thought that it was a little bit shallow and lacked depth. Therefore I have set the goal for myself to transform the cooking system into something I always wanted. My mod adds five new blockentities and over 60 new items that do exactly that. (You can find a deeper explanation of the contents in my ReadMe) This mod is by far not finished but I think it’s gotten to a point where I would say it is playable and enjoyable, that’s why I decided to ship it now. What I’m especially proud of is how far my skills as a mod developer have come since I started this project. I have made a couple of smaller mods before the stardance challenge but never something quite like this. I was even able to upload it to Modrinth where the whole world can see it. (Modrinth is also the easiest way to play my mod) This step of shipping my first project really feels like I’ve achieved something. Thanks in advance to everyone who plays my mod, I hope you’ll enjoy it. If you encounter any bugs (And its not unlikely you do) please report them on my github page. Anyways that’s everything I have to say for now, see you around!
Mine & Dine is a Minecraft mod that aims to overhaul the minecraft cooking system, because I always thought that it was a little bit shallow and lacked depth. Therefore I have set the goal for myself to transform the cooking system into something I always wanted. My mod adds six new blockentities and over 70 new items that do exactly that. (You can find a deeper explanation of the contents in my ReadMe) This mod is by far not finished but I think it’s gotten to a point where I would say it is playable and enjoyable, that’s why I decided to ship it now. Especially now that I’ve successfully ported it to version 26.2. What I’m especially proud of is how far my skills as a mod developer have come since I started this project. I have made a couple of smaller mods before the stardance challenge but never something quite like this. I was even able to upload it to Modrinth where the whole world can see it. (Modrinth is also the easiest way to play my mod btw) This step of shipping my final project for this challenge really feels like I’ve achieved something. Thanks in advance to everyone who plays my mod, I hope you’ll enjoy it. If you encounter any bugs (And its not unlikely you do) please report them on my github page. Anyways that’s everything I have to say for now, see you around!...
|
1792842841.6314957
|
1792929241.6314957
|
|
36987
|
My very own WebOS by @Mak | Stardance
|
Mak
|
2
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-21T08:16:07Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hi! I’d like to request a re-review for my WebOS project and clarify the setup and AI usage. First, I’d like to describe the project again. It is a web-based operating system I named makOS. Built in the style of Arch Linux, it includes applications such as a calendar, calculator, notes, and the game Snake. Regarding the AI aspect: I engineered and built this project by myself with help of ai assistant. However, when I tried to deploy it to GitHub, the build failed. To fix the deployment, I imported the project into Lovable purely to resolve the build environment and workflow issues, instructing it not to alter the webOS logic itself. Lovable fixed the deployment, but automatically added a tag to the README.md claiming the entire project was generated by Lovable from scratch. I wanted to clarify this because, while I used AI as my coding assistant to build makOS, the project was fully directed, designed, and debugged by me, and Lovable was only used at the end to fix the GitHub Pages pipeline.", "repo": "https://github.com/mak6566/makos", "demo": "https://mak6566.github.io/makos/"}, {"ship_num": 2, "ts": "2026-07-19T13:38:27Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created a web-based operating system styled after Arch Linux. It includes applications such as notes, a calendar, a calculator, and the game Snake.", "repo": "https://github.com/mak6566/makos", "demo": "https://mak6566.github.io/makos/"}]...
|
[{"post_id": 32221, "ts": "202 [{"post_id": 32221, "ts": "2026-07-21T07:57:08Z", "hours": 0.0, "text": "My makOS project was rejected due to alleged use of “one-click AI.” I just want to clarify that this is not true; I’ll provide more details in the ship info."}, {"post_id": 31146, "ts": "2026-07-19T09:58:27Z", "hours": 0.0, "text": "I finished the first version of the project makOS. Its browser-based Web OS is built using Next.js, TypeScript, Tailwind CSS, and pnpm. The core architecture uses components like Desktop.tsx and Window.tsx to manage the environment and window states, supporting drag-and-drop, focus layer management, minimizing, and maximizing. Built-in applications running inside the system include a Terminal emulator, a Snake game, a text notepad, a calculator, and a calendar."}, {"post_id": 31120, "ts": "2026-07-19T08:17:33Z", "hours": 0.0, "text": "This is second devlog from my project makOS. I finished main file structure and started working at applications like notes, calculator and game snake."}, {"post_id": 31114, "ts": "2026-07-19T07:53:48Z", "hours": 0.0, "text": "This is first devlog from my project makOS. I started making some first main files. My plan is to build OS in style of linux arch. BTW I use arch."}]...
|
Title: My very own WebOS by @Mak | Stardance
Devl Title: My very own WebOS by @Mak | Stardance
Devlogs:
This is first devlog from my project makOS. I started making some first main files. My plan is to build OS in style of linux arch. BTW I use arch.
This is second devlog from my project makOS. I finished main file structure and started working at applications like notes, calculator and game snake.
I finished the first version of the project makOS. Its browser-based Web OS is built using Next.js, TypeScript, Tailwind CSS, and pnpm. The core architecture uses components like Desktop.tsx and Window.tsx to manage the environment and window states, supporting drag-and-drop, focus layer management, minimizing, and maximizing. Built-in applications running inside the system include a Terminal emulator, a Snake game, a text notepad, a calculator, and a calendar.
My makOS project was rejected due to alleged use of “one-click AI.” I just want to clarify that this is not true; I’ll provide more details in the ship info.
Ships:
I created a web-based operating system styled after Arch Linux. It includes applications such as notes, a calendar, a calculator, and the game Snake.
Hi! I’d like to request a re-review for my WebOS project and clarify the setup and AI usage. First, I’d like to describe the project again. It is a web-based operating system I named makOS. Built in the style of Arch Linux, it includes applications such as a calendar, calculator, notes, and the game Snake. Regarding the AI aspect: I engineered and built this project by myself with help of ai assistant. However, when I tried to deploy it to GitHub, the build failed. To fix the deployment, I imported the project into Lovable purely to resolve the build environment and workflow issues, instructing it not to alter the webOS logic itself. Lovable fixed the deployment, but automatically added a tag to the README.md claiming the entire project was generated by Lovable from scratch. I wanted to clarify this because, while I used AI as my coding assistant to build makOS, the project was fully directed, designed, and debugged by me, and Lovable was only used at the end to fix the GitHub Pages pipeline....
|
1792882095.7668295
|
1793746095.7668295
|
|
37029
|
My very own WebOS NEBULA OsX by @vatsamalakar | St My very own WebOS NEBULA OsX by @vatsamalakar | Stardance...
|
vatsamalakar
|
2
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T20:16:31Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did you make? I built NEBULA OsX, a web-based operating system (WebOS) simulation featuring a clean, minimalist UI complete with functional desktop apps like a terminal, calculator, file manager, notes app, task manager, and a quote generator. What was challenging? Designing an intuitive user interface and balancing the visual style was tricky. I initially went with a space-themed design, but switched to a cleaner, text-driven and minimal look to make the navigation much smoother and easier on the eyes. Integrating multiple smaller features like a quote generator, task manager, and calculator while keeping everything cohesive inside a single web interface also took some careful state management. What are you proud of? I’m really proud of how much the project has evolved—redesigning the UI to focus on simplicity and adding multiple functional mini-apps that make it feel like a real, usable desktop environment. What should people know so they can test your project? You can check out the live preview by clicking “Try project” and explore the different apps on the desktop, use the terminal, or check out the notes and task manager!", "repo": "https://github.com/vatsamalakar/Webos1nebula", "demo": "https://web-os-iota-two.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-21T19:19:50Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "NebulaOS is a desktop-inspired web operating system that transforms a normal website into an interactive space-themed desktop. Over the past few weeks I’ve focused on making the experience feel immersive by adding an animated galaxy background with blinking stars, shooting stars, drifting planets, and glowing nebula effects. One of the biggest challenges was making everything feel like a real operating system instead of a collection of webpages. I built movable application windows, a desktop layout, a bottom dock, and recently used apps section to recreate the workflow of a modern desktop. I also spent a lot of time refining animations, visual effects, and the overall UI so the experience feels smooth and polished. The milestone I’m most proud of is finally making the interface functional. The desktop buttons now open real applications instead of acting as placeholders. Notes, Terminal, System, and Files all work as independent windows, making NebulaOS feel much more interactive and laying the foundation for future features. To test the project, explore the desktop by clicking the application icons, open multiple windows, move between apps using the dock, interact with the Notes, Terminal, System, and Files applications, and enjoy the animated space background while navigating around the desktop.", "repo": "https://github.com/vatsamalakar/Webos1nebula", "demo": "https://web-os-iota-two.vercel.app/"}]...
|
[{"post_id": 42326, "ts": "202 [{"post_id": 42326, "ts": "2026-08-07T00:22:06Z", "hours": 0.2811, "text": "I decided to make the UI even more simpler and dropped the icons and opted for just words. Simplicity is key."}, {"post_id": 41675, "ts": "2026-08-06T01:18:43Z", "hours": 0.6978, "text": "To further enhance my project, I focused on building several smaller features that would make the application more engaging and enjoyable to use every day. Instead of concentrating exclusively on the main functionality, I wanted to add features that would create a more interactive and personalized experience. The first feature I implemented was a quote generator. Users can view a quote of the day, or view another quote, and copy any quote directly to their clipboard. My goal was to create a simple feature that could provide users with a little motivation whenever they opened the application. Next, I developed a joke generator. The application displays the beginning of a joke and allows users to click a button to reveal the punchline. Once the joke has been completed, users can select another button to generate a new one. This feature was designed to add a sense of fun and variety while also giving me the opportunity to experiment with user interaction and state management. Finally, I added a calendar feature. The calendar provides a complete monthly view and allows users to attach notes to individual dates. This makes it easy to keep track of important events, deadlines, reminders, and plans in a single location. I also spent time making sure that the layout remained clean and easy to navigate so that users could quickly find the information they needed."}, {"post_id": 40333, "ts": "2026-08-03T19:32:20Z", "hours": 1.1847, "text": "I redesigned the UI to improve usability. While the original space theme was visually interesting, I found that it made the interface harder to navigate, so I switched to a cleaner, more minimal design that’s easier on the eyes. Along with the visual refresh, I expanded the app’s functionality by adding several new features, including a calculator, a task manager, and a dedicated settings page, making the application more practical and user friendly."}, {"post_id": 32504, "ts": "2026-07-21T18:40:56Z", "hours": 0.3667, "text": "Building the NebulaOS ExperienceNebulaOS continued evolving from a simple concept into an immersive desktop-inspired web experience. During this stage, the focus shifted toward making the application feel like a real operating system rather than a traditional webpage. Every addition was designed to improve both the atmosphere and user experience, creating an interface that encourages exploration and interaction.Creating an immersive atmosphereThe first priority was establishing a unique visual identity. The background was transformed into a living space environment filled with deep nebula clouds, softly glowing planets, and a rich night sky. Stars were given randomized sizes and brightness levels, along with subtle blinking animations, making the scene feel much more natural.To make the environment feel alive, gentle animations were added throughout the scene. Shooting stars occasionally streak across the sky, planets slowly drift through space, and distant celestial objects move almost imperceptibly over time. These effects create the feeling that the desktop exists within a living universe rather than a static image.Designing a desktop-inspired interfaceA major milestone was transforming the layout into a desktop environment. Instead of displaying everything on one page, applications now open as independent windows that can be launched, focused, moved, and closed like a real operating system.Expanding the built-in applicationsSeveral functional windows were added to strengthen the desktop experience:Notes provides a workspace for writing ideas and reminders.Terminal introduces a command-line inspired interface.System displays operating system information in a dashboard.Files acts as a simple file explorer.While these applications are still lightweight, they establish a strong foundation for future functionality.Bringing the interface to lifeOne of the biggest milestones was making the desktop interactive. Many icons and buttons originally served only as visual placeholders, but during this development cycle I began connecting them to real functionality.Desktop buttons now open their corresponding applications, switch focus between windows, and create a much more realistic operating system experience. This marked the transition from building the interface to implementing the features behind it.Improving navigationNavigation was redesigned to feel closer to a modern desktop operating system. A persistent bottom dock was added, giving users quick access to frequently used applications. I also implemented a Recently Used Apps section that keeps recently opened applications easily accessible, making navigation faster and improving the overall workflow.Polishing the experienceThe final stage focused on refinement. Animations were smoothed, spacing was adjusted, and interface elements were balanced to create a cleaner design. Glow effects, transitions, depth, and consistent styling helped tie the entire experience together while making NebulaOS feel more polished and believable.Final ResultBy the end of this development phase, NebulaOS had grown far beyond its original concept. It now features an animated space background with blinking and shooting stars, slowly drifting planets, movable desktop windows, functional Notes, Terminal, System, and Files applications, working desktop buttons, a persistent bottom dock, a Recently Used Apps section, and a polished operating-system aesthetic.The project now provides a much stronger sense of immersion while creating a solid foundation for future additions, including more advanced applications, deeper interactivity, expanded system functionality, and additional visual enhancements."}, {"post_id": 32459, "ts": "2026-07-21T17:40:25Z", "hours": 0.8442, "text": "During this development session, I focused on expanding the application’s functionality while continuing to improve its overall user interface. One of my main goals was to make the space theme feel more immersive and visually interesting, so I added multiple planets that vary in both size and color. This makes the background feel more dynamic instead of having every object look identical. I also updated the stars so they appear in different sizes, creating a more realistic night sky and giving the app additional depth.Beyond the visual improvements, I spent time adding several new features and interface elements that will become important parts of the application. Although some of these features are not yet clickable or fully functional, I have already designed and integrated them into the layout. My next step is to connect these interface elements to their underlying functionality and ensure everything works smoothly.Overall, this development session was focused on building the foundation for the finished product. The app is beginning to resemble my original vision, with a polished space-inspired design and a growing set of interactive features. While there is still work to do, especially on making every feature fully operational, I am happy with the progress so far and excited to continue refining both the appearance and the user experience."}, {"post_id": 31930, "ts": "2026-07-20T18:45:58Z", "hours": 1.3564, "text": "I started by planning the overall vision for the project. Instead of making a standard website, I wanted to build something that felt like an actual desktop operating system running inside the browser. I sketched out the interface, decided on a futuristic space theme, and planned the core applications I wanted to include, such as Notes, Terminal, System Information, and a File Explorer. I also thought about how users would interact with windows, move them around, and launch applications from a desktop environment before writing any code."}]...
|
Title: My very own WebOS NEBULA OsX by @vatsamalak Title: My very own WebOS NEBULA OsX by @vatsamalakar | Stardance
Devlogs:
I started by planning the overall vision for the project. Instead of making a standard website, I wanted to build something that felt like an actual desktop operating system running inside the browser. I sketched out the interface, decided on a futuristic space theme, and planned the core applications I wanted to include, such as Notes, Terminal, System Information, and a File Explorer. I also thought about how users would interact with windows, move them around, and launch applications from a desktop environment before writing any code.
During this development session, I focused on expanding the application’s functionality while continuing to improve its overall user interface. One of my main goals was to make the space theme feel more immersive and visually interesting, so I added multiple planets that vary in both size and color. This makes the background feel more dynamic instead of having every object look identical. I also updated the stars so they appear in different sizes, creating a more realistic night sky and giving the app additional depth.Beyond the visual improvements, I spent time adding several new features and interface elements that will become important parts of the application. Although some of these features are not yet clickable or fully functional, I have already designed and integrated them into the layout. My next step is to connect these interface elements to their underlying functionality and ensure everything works smoothly.Overall, this development session was focused on building the foundation for the finished product. The app is beginning to resemble my original vision, with a polished space-inspired design and a growing set of interactive features. While there is still work to do, especially on making every feature fully operational, I am happy with the progress so far and excited to continue refining both the appearance and the user experience.
Building the NebulaOS ExperienceNebulaOS continued evolving from a simple concept into an immersive desktop-inspired web experience. During this stage, the focus shifted toward making the application feel like a real operating system rather than a traditional webpage. Every addition was designed to improve both the atmosphere and user experience, creating an interface that encourages exploration and interaction.Creating an immersive atmosphereThe first priority was establishing a unique visual identity. The background was transformed into a living space environment filled with deep nebula clouds, softly glowing planets, and a rich night sky. Stars were given randomized sizes and brightness levels, along with subtle blinking animations, making the scene feel much more natural.To make the environment feel alive, gentle animations were added throughout the scene. Shooting stars occasionally streak across the sky, planets slowly drift through space, and distant celestial objects move almost imperceptibly over time. These effects create the feeling that the desktop exists within a living universe rather than a static image.Designing a desktop-inspired interfaceA major milestone was transforming the layout into a desktop environment. Instead of displaying everything on one page, applications now open as independent windows that can be launched, focused, moved, and closed like a real operating system.Expanding the built-in applicationsSeveral functional windows were added to strengthen the desktop experience:Notes provides a workspace for writing ideas and reminders.Terminal introduces a command-line inspired interface.System displays operating system information in a dashboard.Files acts as a simple file explorer.While these applications are still lightweight, they establish a strong foundation for future functionality.Bringing the interface to lifeOne of the biggest milestones was making the desktop interactive. Many icons and buttons originally served only as visual placeholders, but during this development cycle I began connecting them to real functionality.Desktop buttons now open their corresponding applications, switch focus between windows, and create a much more realistic operating system experience. This marked the transition from building the interface to implementing the features behind it.Improving navigationNavigation was redesigned to feel closer to a modern desktop operating system. A persistent bottom dock was added, giving users quick access to frequently used applications. I also implemented a Recently Used Apps section that keeps recently opened applications easily accessible, making navigation faster and improving the overall workflow.Polishing the experienceThe final stage focused on refinement. Animations were smoothed, spacing was adjusted, and interface elements were balanced to create a cleaner design. Glow effects, transitions, depth, and consistent styling helped tie the entire experience together while making NebulaOS feel more polished and believable.Final ResultBy the end of this development phase, NebulaOS had grown far beyond its original concept. It now features an animated space background with blinking and shooting stars, slowly drifting planets, movable desktop windows, functional Notes, Terminal, System, and Files applications, working desktop buttons, a persistent bottom dock, a Recently Used Apps section, and a polished operating-system aesthetic.The project now provides a much stronger sense of immersion while creating a solid foundation for future additions, including more advanced applications, deeper interactivity, expanded system functionality, and additional visual enhancements.
I redesigned the UI to improve usability. While the original space theme was visually interesting, I found that it made the interface harder to navigate, so I switched to a cleaner, more minimal design that’s easier on the eyes. Along with the visual refresh, I expanded the app’s functionality by adding several new features, including a calculator, a task manager, and a dedicated settings page, making the application more practical and user friendly.
To further enhance my project, I focused on building several smaller features that would make the application more engaging and enjoyable to use every day. Instead of concentrating exclusively on the main functionality, I wanted to add features that would create a more interactive and personalized experience. The first feature I implemented was a quote generator. Users can view a quote of the day, or view another quote, and copy any quote directly to their clipboard. My goal was to create a simple feature that could provide users with a little motivation whenever they opened the application. Next, I developed a joke generator. The application displays the beginning of a joke and allows users to click a button to reveal the punchline. Once the joke has been completed, users can select another button to generate a new one. This feature was designed to add a sense of fun and variety while also giving me the opportunity to experiment with user interaction and state management. Finally, I added a calendar feature. The calendar provides a complete monthly view and allows users to attach notes to individual dates. This makes it easy to keep track of important events, deadlines, reminders, and plans in a single location. I also spent time making sure that the layout remained clean and easy to navigate so that users could quickly find the information they needed.
I decided to make the UI even more simpler and dropped the icons and opted for just words. Simplicity is key.
Ships:
NebulaOS is a desktop-inspired web operating system that transforms a normal website into an interactive space-themed desktop. Over the past few weeks I’ve focused on making the experience feel immersive by adding an animated galaxy background with blinking stars, shooting stars, drifting planets, and glowing nebula effects. One of the biggest challenges was making everything feel like a real operating system instead of a collection of webpages. I built movable application windows, a desktop layout, a bottom dock, and recently used apps section to recreate the workflow of a modern desktop. I also spent a lot of time refining animations, visual effects, and the overall UI so the experience feels smooth and polished. The milestone I’m most proud of is finally making the interface functional. The desktop buttons now open real applications instead of acting as placeholders. Notes, Terminal, System, and Files all work as independent windows, making NebulaOS feel much more interactive and laying the foundation for future features. To test the project, explore the desktop by clicking the application icons, open multiple windows, move between apps using the dock, interact with the Notes, Terminal, System, and Files applications, and enjoy the animated space background while navigating around the desktop.
What did you make? I built NEBULA OsX, a web-based operating system (WebOS) simulation featuring a clean, minimalist UI complete with functional desktop apps like a terminal, calculator, file manager, notes app, task manager, and a quote generator. What was challenging? Designing an intuitive user interface and balancing the visual style was tricky. I initially went with a space-themed design, but switched to a cleaner, text-driven and minimal look to make the navigation much smoother and easier on the eyes. Integrating multiple smaller features like a quote generator, task manager, and calculator while keeping everything cohesive inside a single web interface also took some careful state management. What are you proud of? I’m really proud of how much the project has evolved—redesigning the UI to focus on simplicity and adding multiple functional mini-apps that make it feel like a real, usable desktop environment. What should people know so they can test your project? You can check out the live preview by clicking “Try project” and explore the different apps on the desktop, use the terminal, or check out the notes and task manager!...
|
1792882121.9827
|
1793746121.9827
|
|
37038
|
The Button by @brunodevdrums | Stardance
|
brunodevdrums
|
2
|
2.0
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-11T01:59:09Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So… here’s what I ended up doing! Updated the readme to include more details. Added a small cooldown to prevent excessive spam. You can click anywhere to count! The button now makes a sound! I recorded the sound from my keyboard for the site myself. New color options available!", "repo": "https://github.com/BrundevCoder/button", "demo": "https://brundevcoder.github.io/button/"}, {"ship_num": 2, "ts": "2026-07-19T00:05:26Z", "hours": 1.0, "multiplier": 1.81, "payout": 2, "blessing": "neutral", "text": "My project is inspired by a Steam game called “THE BUTTON by Elendow,” simple as that game, just click a button and you earn points! But… the more points you have, the riskier each click becomes! The idea is simply to push your limits while playing! Good luck!!", "repo": "https://github.com/BrundevCoder/button", "demo": "https://brundevcoder.github.io/button/"}]...
|
[{"post_id": 33262, "ts": "202 [{"post_id": 33262, "ts": "2026-07-23T01:05:07Z", "hours": 0.3372, "text": "During this time I did: Updated the readme …some of you were confused about what MAX and TOTAL meant. Cooldown on the button, to prevent excessive spam Now you can simply click anywhere to count!"}, {"post_id": 33252, "ts": "2026-07-23T00:37:01Z", "hours": 0.2844, "text": "Okay… now, as some of you requested, I’ve also added an audio track that plays whenever you click the button (which is a sound from my actual keyboard, hehe). And I’ve also added a reset counter."}, {"post_id": 33190, "ts": "2026-07-22T21:27:48Z", "hours": 0.6992, "text": "Now you can change the button color! I’ll probably add more themes soon! I hope you like the customization!"}, {"post_id": 30970, "ts": "2026-07-18T23:57:23Z", "hours": 0.6781, "text": "For now, I’m finished! Here’s a list of what I’ve done in this time: README, with a banner, a link to my project, and information about the design (check it out!) Counters! One counter shows the maximum number you can get, and another shows the total! Logic working! Every time you click the button, your chances of losing increase according to the points!"}, {"post_id": 30944, "ts": "2026-07-18T23:08:26Z", "hours": 0.2717, "text": "Well… I’m making a website that’s somewhat similar to a game I found on Steam (you can spend hours playing it), called “THE BUTTON by Elendow”. I’m trying to make it as similar as possible, and in this time I’ve worked on the HTML (the base) and a bit on the CSS!"}]...
|
Title: The Button by @brunodevdrums | Stardance
D Title: The Button by @brunodevdrums | Stardance
Devlogs:
Well… I’m making a website that’s somewhat similar to a game I found on Steam (you can spend hours playing it), called “THE BUTTON by Elendow”. I’m trying to make it as similar as possible, and in this time I’ve worked on the HTML (the base) and a bit on the CSS!
For now, I’m finished! Here’s a list of what I’ve done in this time: README, with a banner, a link to my project, and information about the design (check it out!) Counters! One counter shows the maximum number you can get, and another shows the total! Logic working! Every time you click the button, your chances of losing increase according to the points!
Now you can change the button color! I’ll probably add more themes soon! I hope you like the customization!
Okay… now, as some of you requested, I’ve also added an audio track that plays whenever you click the button (which is a sound from my actual keyboard, hehe). And I’ve also added a reset counter.
During this time I did: Updated the readme …some of you were confused about what MAX and TOTAL meant. Cooldown on the button, to prevent excessive spam Now you can simply click anywhere to count!
Ships:
My project is inspired by a Steam game called “THE BUTTON by Elendow,” simple as that game, just click a button and you earn points! But… the more points you have, the riskier each click becomes! The idea is simply to push your limits while playing! Good luck!!
So… here’s what I ended up doing! Updated the readme to include more details. Added a small cooldown to prevent excessive spam. You can click anywhere to count! The button now makes a sound! I recorded the sound from my keyboard for the site myself. New color options available!...
|
1792810441.8247247
|
1792896841.8247247
|
|
37056
|
Main Website/Portfolio by @reshiiiram | Stardance
|
reshiiiram
|
2
|
23.0
|
61
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-20T20:28:46Z", "hours": 8.0, "multiplier": 7.28, "payout": 61, "blessing": "neutral", "text": "Alright!!! this is going to be my website’s second ship! Please check out the art gallery and the cool image map! I’m really proud of how this portfolio came out and I will be adding the photography page next and may be a blog page next ship.", "repo": "https://github.com/mairemare/reshi-the-coolram", "demo": "https://mairemare.github.io/reshi-the-coolram/"}, {"ship_num": 2, "ts": "2026-07-26T04:11:47Z", "hours": 15.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "It’s finally done!!! I really love how this website turned out after 15 hours of coding. This website really shows my interests and love for space. My website includes: an about me, projects section, and an updates section where I’ll put any important updates on my projects or my life. I’m gonna improve more on website making so that I can promote my future projects even more and my friends with their fan merch businesses. Thank you for all your support! I might take a short break on coding after this and begin on Library of Halcyon.", "repo": "https://github.com/mairemare/reshi-the-coolram", "demo": "https://mairemare.github.io/reshi-the-coolram/"}]...
|
[{"post_id": 81322, "ts": "202 [{"post_id": 81322, "ts": "2026-10-20T20:24:59Z", "hours": 0.4608, "text": "Alright!!! my website it ready for shipping! Not all the pages are done but the gallery is up!"}, {"post_id": 81109, "ts": "2026-10-19T22:17:55Z", "hours": 0.8553, "text": "Image Map Complete! I am now currently adding my art in my art gallery and I will potentially add my photos next."}, {"post_id": 80882, "ts": "2026-10-19T04:44:37Z", "hours": 1.2711, "text": "Added my first link on image map. I’m having a slight problem on alignment but that just means I need to watch a tut on how to actually do this. I also added some of the stuff back from the first version of the website."}, {"post_id": 78923, "ts": "2026-10-12T01:57:39Z", "hours": 1.0742, "text": "reworked about me Okay so I reworked the about me section and put up small details about myself. I will be working on adding coordinates on my image map after I’m done with the main page so that there wouldn’t be any conflict (just in case that it turns my html does not care that the image is a separate entity)."}, {"post_id": 78739, "ts": "2026-10-11T13:25:37Z", "hours": 1.3261, "text": "progress^^ I’m working on an image map so my website can look more cooler and colorful. Might make mini-pages alongside that to show all my artworks and coding projects. I should be able to ship this before stardance ends."}, {"post_id": 60642, "ts": "2026-09-03T04:03:41Z", "hours": 2.9783, "text": "I’ve been reworking on my main website layout (since witchyware is out and there isn’t enough space on the page). I’m still sticking to the space concept and I’m gonna try and figure out the script for making tabs. Probably tomorrow night I’ll think of a different header design."}, {"post_id": 46158, "ts": "2026-08-13T05:36:00Z", "hours": 0.3444, "text": "I’m back! — okay so I updated the website to put concept arts and new updates. I’ve been watching and learning css stuff so that I can make my website easier to navigate. My plan is to separate the sections and the projects…something like that. Then, I’ll add a gallery section and other stuff. — I think I’ll be able to update it once I finish half of the warioware mission."}, {"post_id": 34961, "ts": "2026-07-26T02:47:43Z", "hours": 4.6428, "text": "My website is about to be ready for shipping! I can’t figure out how to get the link to open my website instead of my readme. Either way, here’s a preview of my read me!"}, {"post_id": 34417, "ts": "2026-07-25T03:27:28Z", "hours": 3.8119, "text": "Almost done with the site! All I need to do is to add a few aesthetics and more mechanisms. Anyways, here’s a preview of the projects section. Thank you for all your support chat."}, {"post_id": 33894, "ts": "2026-07-24T05:29:07Z", "hours": 2.3725, "text": "New Layout!! I finally got the arrangement and the buttons to work. I might be able to ship this tomorrow or the day after that."}, {"post_id": 33350, "ts": "2026-07-23T05:56:41Z", "hours": 1.1056, "text": "a lot of progress!! I discovered the existence of img src and text align and underwent an Industrial Revolution. I just need to learn how to code buttons and I’m off to designing and adding stuff."}, {"post_id": 33329, "ts": "2026-07-23T04:24:55Z", "hours": 1.9858, "text": "After 3 Youtube tutorials and 10 google searches later, I finally made some great progress! Well, it doesn’t really look like what I had planned, but everything is starting to come together."}, {"post_id": 32784, "ts": "2026-07-22T05:14:34Z", "hours": 0.4086, "text": "Lowkey finished my website’s outline and what it should look like. I’m working on a cyberpunk style website where I can put up my works and all that stuff."}, {"post_id": 32768, "ts": "2026-07-22T04:13:21Z", "hours": 0.6614, "text": "Just finished the personal web tutorial. Not bad as my first coding project that isn’t block based. I’m gonna start outlining what I want my web to look like on Canva and learn CSS after this log."}]...
|
Title: Main Website/Portfolio by @reshiiiram | Sta Title: Main Website/Portfolio by @reshiiiram | Stardance
Devlogs:
Just finished the personal web tutorial. Not bad as my first coding project that isn’t block based. I’m gonna start outlining what I want my web to look like on Canva and learn CSS after this log.
Lowkey finished my website’s outline and what it should look like. I’m working on a cyberpunk style website where I can put up my works and all that stuff.
After 3 Youtube tutorials and 10 google searches later, I finally made some great progress! Well, it doesn’t really look like what I had planned, but everything is starting to come together.
a lot of progress!! I discovered the existence of img src and text align and underwent an Industrial Revolution. I just need to learn how to code buttons and I’m off to designing and adding stuff.
New Layout!! I finally got the arrangement and the buttons to work. I might be able to ship this tomorrow or the day after that.
Almost done with the site! All I need to do is to add a few aesthetics and more mechanisms. Anyways, here’s a preview of the projects section. Thank you for all your support chat.
My website is about to be ready for shipping! I can’t figure out how to get the link to open my website instead of my readme. Either way, here’s a preview of my read me!
I’m back! — okay so I updated the website to put concept arts and new updates. I’ve been watching and learning css stuff so that I can make my website easier to navigate. My plan is to separate the sections and the projects…something like that. Then, I’ll add a gallery section and other stuff. — I think I’ll be able to update it once I finish half of the warioware mission.
I’ve been reworking on my main website layout (since witchyware is out and there isn’t enough space on the page). I’m still sticking to the space concept and I’m gonna try and figure out the script for making tabs. Probably tomorrow night I’ll think of a different header design.
progress^^ I’m working on an image map so my website can look more cooler and colorful. Might make mini-pages alongside that to show all my artworks and coding projects. I should be able to ship this before stardance ends.
reworked about me Okay so I reworked the about me section and put up small details about myself. I will be working on adding coordinates on my image map after I’m done with the main page so that there wouldn’t be any conflict (just in case that it turns my html does not care that the image is a separate entity).
Added my first link on image map. I’m having a slight problem on alignment but that just means I need to watch a tut on how to actually do this. I also added some of the stuff back from the first version of the website.
Image Map Complete! I am now currently adding my art in my art gallery and I will potentially add my photos next.
Alright!!! my website it ready for shipping! Not all the pages are done but the gallery is up!
Ships:
It’s finally done!!! I really love how this website turned out after 15 hours of coding. This website really shows my interests and love for space. My website includes: an about me, projects section, and an updates section where I’ll put any important updates on my projects or my life. I’m gonna improve more on website making so that I can promote my future projects even more and my friends with their fan merch businesses. Thank you for all your support! I might take a short break on coding after this and begin on Library of Halcyon.
Alright!!! this is going to be my website’s second ship! Please check out the art gallery and the cool image map! I’m really proud of how this portfolio came out and I will be adding the photography page next and may be a blog page next ship....
|
1792824909.3665135
|
1792911309.3665135
|
|
37167
|
My very own WebOS by @charlestexier54 | Stardance
|
charlestexier54
|
2
|
7.0
|
5
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-29T22:01:15Z", "hours": 3.0, "multiplier": 1.99, "payout": 5, "blessing": "neutral", "text": "I added 5 majors features : -Boot Screen (BOOT_SEQUENCE): A retro initialization screen that saves your username for the terminal. -Interactive Terminal (TERMINAL.EXE): A working command-line tool supporting custom commands like : help, iss, date, whoami, and clear. -Theme Switcher (SETTINGS.EXE): A control panel to instantly switch between Space Orange and Cyber Blue themes. -Persistent Notepad (NOTEPAD.EXE): A text editor that auto-saves your notes using browser storage. (Only one file but that’s enough) -Start Menu (LAUNCH): An interactive start menu to launch all system apps smoothly. Go test it at : https://charles-pyt.github.io/aero-os", "repo": "https://github.com/Charles-pyt/aero-os", "demo": "https://charles-pyt.github.io/aero-os/"}, {"ship_num": 2, "ts": "2026-07-21T22:09:57Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "AeroOS is an interactive, retro-futuristic web operating system featuring custom window management and a Mission Control interface. It integrates dynamic applications such as a mission log archive system and a real-time International Space Station (ISS) radar tracker.", "repo": "https://github.com/Charles-pyt/aero-os", "demo": "https://charles-pyt.github.io/aero-os/"}]...
|
[{"post_id": 37287, "ts": "202 [{"post_id": 37287, "ts": "2026-07-29T21:52:35Z", "hours": 0.9031, "text": "Created a settings app where you can choose your color, and added a boot menu at the launch of the page, you can enter a username and then the system will call you with your name. You don’t lose your work by reloading the page now because I added the localStorage in the javascript so it’s saved on the browser local storage."}, {"post_id": 34856, "ts": "2026-07-25T22:00:23Z", "hours": 1.2211, "text": "Added apps NotePad, Terminal"}, {"post_id": 33693, "ts": "2026-07-23T20:22:56Z", "hours": 0.6292, "text": "Added a small start menu from the button launch on the taskbar"}, {"post_id": 32620, "ts": "2026-07-21T22:06:15Z", "hours": 1.4025, "text": "Finishing WebOS 1 requirements, added and iss live tracker app and some features to make the UX comfortable, sor try it out => https://charles-pyt.github.io/aero-os/"}, {"post_id": 32033, "ts": "2026-07-20T22:07:41Z", "hours": 1.3653, "text": "Fixing deployement on github pages and added the first application, the next step is to add real data in my LOG_ARCHIVE.exe app"}, {"post_id": 31722, "ts": "2026-07-20T10:48:28Z", "hours": 1.2411, "text": "Add a good UI and draggable windows"}, {"post_id": 31491, "ts": "2026-07-19T22:10:28Z", "hours": 0.2611, "text": "Init the project and write the first line"}]...
|
Title: My very own WebOS by @charlestexier54 | Sta Title: My very own WebOS by @charlestexier54 | Stardance
Devlogs:
Init the project and write the first line
Add a good UI and draggable windows
Fixing deployement on github pages and added the first application, the next step is to add real data in my LOG_ARCHIVE.exe app
Finishing WebOS 1 requirements, added and iss live tracker app and some features to make the UX comfortable, sor try it out => https://charles-pyt.github.io/aero-os/
Added a small start menu from the button launch on the taskbar
Added apps NotePad, Terminal
Created a settings app where you can choose your color, and added a boot menu at the launch of the page, you can enter a username and then the system will call you with your name. You don’t lose your work by reloading the page now because I added the localStorage in the javascript so it’s saved on the browser local storage.
Ships:
AeroOS is an interactive, retro-futuristic web operating system featuring custom window management and a Mission Control interface. It integrates dynamic applications such as a mission log archive system and a real-time International Space Station (ISS) radar tracker.
I added 5 majors features : -Boot Screen (BOOT_SEQUENCE): A retro initialization screen that saves your username for the terminal. -Interactive Terminal (TERMINAL.EXE): A working command-line tool supporting custom commands like : help, iss, date, whoami, and clear. -Theme Switcher (SETTINGS.EXE): A control panel to instantly switch between Space Orange and Cyber Blue themes. -Persistent Notepad (NOTEPAD.EXE): A text editor that auto-saves your notes using browser storage. (Only one file but that’s enough) -Start Menu (LAUNCH): An interactive start menu to launch all system apps smoothly. Go test it at : https://charles-pyt.github.io/aero-os...
|
1792842515.9040282
|
1792928915.9040282
|
|
37185
|
riz! by @rizz | Stardance
|
rizz
|
2
|
2.0
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-29T06:12:14Z", "hours": 1.0, "multiplier": 2.4, "payout": 2, "blessing": "neutral", "text": "improved some major bugs and some issues related to riz-joke command and like some minor issues like it was just hosting the old code and i had to fix that and i had to revoke my api keys cuz i did some stupidity and that’s all for now", "repo": "https://github.com/STEVEALEX-source/riz-bot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354"}, {"ship_num": 2, "ts": "2026-08-23T16:57:10Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Building Friday Bot was a wild journey. The hardest part by far was debugging why the bot was completely silent when I typed commands in Slack. Tracking down missing socket tokens and fixing that frustrating path error in systemd where Node kept looking for an index file instead of my actual server file drove me crazy for a bit. On the flip side, the most fun part was getting everything live on my Hack Club Nest server. Logging into the Linux terminal and realizing I could run a real backend app in the cloud felt amazing. Seeing the calculator command finally return a correct response in Slack after hours of tinkering was a huge relief and a ton of fun. I learned a lot along the way. I now understand how Socket Mode works without needing public webhook URLs, how to manage background processes using systemd so applications stay online around the clock, and how Slack apps handle permissions behind the scenes. It felt awesome to take code from a local project to a fully running cloud server", "repo": "https://github.com/STEVEALEX-source/riz-bot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354"}]...
|
[{"post_id": 56640, "ts": "202 [{"post_id": 56640, "ts": "2026-08-28T14:13:15Z", "hours": 0.7339, "text": "so i improved many thing like the joke command and the readme and many other bugs"}, {"post_id": 53120, "ts": "2026-08-23T15:30:56Z", "hours": 1.3189, "text": "Today was a wild ride building and deploying Friday Bot. The goal was to create a Slack bot that handles slash commands like math calculations and status updates while also backing it up with a clean Express API.Things did not go smoothly at first. Whenever I typed a command in Slack, it just gave me a frustrating error saying the app did not respond. I spent way too long digging into socket mode configurations. Turns out my app level token was missing the required connection scopes, and my local server was completely silent because nothing was actively listening down the websocket.Adding a global error handler to the code saved me. It finally surfaced what was breaking under the hood. Once I cleaned up the token permissions and wired up the Bolt app properly, testing the calculator command actually returned a correct result instead of timing out.After getting the code working locally, it was time to put it on the web. I decided to host it on my Hack Club Nest server. Logging into the Linux box via SSH felt like old school programming.Setting up the environment on the server took a few steps. I installed Node, cloned my github repository, manually created the environment file with all my private tokens, and tested it manually. Everything booted up on port 3000 just like it did on my local machine.To make sure the bot stays alive after I close the terminal, I configured a systemd service file. Now it runs as a background service with automatic restarts. Friday Bot is officially live and online around the clock."}]...
|
Title: riz! by @rizz | Stardance
Devlogs:
Today w Title: riz! by @rizz | Stardance
Devlogs:
Today was a wild ride building and deploying Friday Bot. The goal was to create a Slack bot that handles slash commands like math calculations and status updates while also backing it up with a clean Express API.Things did not go smoothly at first. Whenever I typed a command in Slack, it just gave me a frustrating error saying the app did not respond. I spent way too long digging into socket mode configurations. Turns out my app level token was missing the required connection scopes, and my local server was completely silent because nothing was actively listening down the websocket.Adding a global error handler to the code saved me. It finally surfaced what was breaking under the hood. Once I cleaned up the token permissions and wired up the Bolt app properly, testing the calculator command actually returned a correct result instead of timing out.After getting the code working locally, it was time to put it on the web. I decided to host it on my Hack Club Nest server. Logging into the Linux box via SSH felt like old school programming.Setting up the environment on the server took a few steps. I installed Node, cloned my github repository, manually created the environment file with all my private tokens, and tested it manually. Everything booted up on port 3000 just like it did on my local machine.To make sure the bot stays alive after I close the terminal, I configured a systemd service file. Now it runs as a background service with automatic restarts. Friday Bot is officially live and online around the clock.
so i improved many thing like the joke command and the readme and many other bugs
Ships:
Building Friday Bot was a wild journey. The hardest part by far was debugging why the bot was completely silent when I typed commands in Slack. Tracking down missing socket tokens and fixing that frustrating path error in systemd where Node kept looking for an index file instead of my actual server file drove me crazy for a bit. On the flip side, the most fun part was getting everything live on my Hack Club Nest server. Logging into the Linux terminal and realizing I could run a real backend app in the cloud felt amazing. Seeing the calculator command finally return a correct response in Slack after hours of tinkering was a huge relief and a ton of fun. I learned a lot along the way. I now understand how Socket Mode works without needing public webhook URLs, how to manage background processes using systemd so applications stay online around the clock, and how Slack apps handle permissions behind the scenes. It felt awesome to take code from a local project to a fully running cloud server
improved some major bugs and some issues related to riz-joke command and like some minor issues like it was just hosting the old code and i had to fix that and i had to revoke my api keys cuz i did some stupidity and that’s all for now...
|
1792821026.6006382
|
1792907426.6006382
|
|
37303
|
Irina's birthday website by Necry by @Necry | Irina's birthday website by Necry by @Necry | Stardance...
|
Necry
|
2
|
10.0
|
63
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-08T14:42:16Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a page made for one of my dearest friends’ birthday. I am incredibly proud of doing this but I am kind of sad that I only posted only 4 web vlogs but I kept on putting it off. It only uses placeholders for messages and photos for privacy. This ship is only because I added the password which was way harder than I thought. The password is “password”", "repo": "https://github.com/necrymere/Irina-s-Birthday-Site-by-Necry", "demo": "https://necrymere.github.io/Irina-s-Birthday-Site-by-Necry/"}, {"ship_num": 2, "ts": "2026-07-24T15:01:19Z", "hours": 9.0, "multiplier": 7.4, "payout": 63, "blessing": "neutral", "text": "This is a page made for one of my dearest friends’ birthday. I am incredibly proud of doing this but I am kind of sad that I only posted only 4 web vlogs but I kept on putting it off. It only uses placeholders for messages and photos for privacy.", "repo": "https://github.com/necrymere/Irina-s-Birthday-Site-by-Necry", "demo": "https://necrymere.github.io/Irina-s-Birthday-Site-by-Necry/"}]...
|
[{"post_id": 64245, "ts": "202 [{"post_id": 64245, "ts": "2026-09-08T14:40:18Z", "hours": 1.455, "text": "I added a password screen so in the final publishing of the site(which includes all the photos and such) cannot be entered by just about anyone. Anyways this was really fun but I had this hour that was not logged so I am posting this."}, {"post_id": 34060, "ts": "2026-07-24T14:51:51Z", "hours": 0.4217, "text": "I got the spotify embed to work(yayyy) and finished placing placeholders and such. I think I am done"}, {"post_id": 33991, "ts": "2026-07-24T11:48:21Z", "hours": 3.0989, "text": "Once again I forgot to post but honestly this is almost done. I added a navigation bar, a home section with her image and her titles(instead of it being in the memories section) and a place to add notes from her friends. I am happy that I am starting to figure out and understand how all of this works. The spotify embeded player still does not work. Oh I also forgot that I added placeholders for images(and the project will be released publicly only with placeholders for privacy’s sake."}, {"post_id": 33458, "ts": "2026-07-23T13:09:34Z", "hours": 4.4525, "text": "Ok I just realised that I did not update this in such a long time. So I finished the photo gallery, refined the design and started the music library using Spotify embeded. I attached the photo gallery(the photos are yet to be added) also I need to add her photo there)"}, {"post_id": 32599, "ts": "2026-07-21T21:32:03Z", "hours": 0.5667, "text": "I worked on the first page of the website of my friend Irina. Luckily she has no way of finding this(I hope). Anyways this is an interactive question(“Are we your best friends”) and the “NO” button turns into “Yes” once clicked. Also I made a Figma page to maybe help with the design process. I still have a lot of work to do."}]...
|
Title: Irina's birthday website by Necry by @N Title: Irina's birthday website by Necry by @Necry | Stardance
Devlogs:
I worked on the first page of the website of my friend Irina. Luckily she has no way of finding this(I hope). Anyways this is an interactive question(“Are we your best friends”) and the “NO” button turns into “Yes” once clicked. Also I made a Figma page to maybe help with the design process. I still have a lot of work to do.
Ok I just realised that I did not update this in such a long time. So I finished the photo gallery, refined the design and started the music library using Spotify embeded. I attached the photo gallery(the photos are yet to be added) also I need to add her photo there)
Once again I forgot to post but honestly this is almost done. I added a navigation bar, a home section with her image and her titles(instead of it being in the memories section) and a place to add notes from her friends. I am happy that I am starting to figure out and understand how all of this works. The spotify embeded player still does not work. Oh I also forgot that I added placeholders for images(and the project will be released publicly only with placeholders for privacy’s sake.
I got the spotify embed to work(yayyy) and finished placing placeholders and such. I think I am done
I added a password screen so in the final publishing of the site(which includes all the photos and such) cannot be entered by just about anyone. Anyways this was really fun but I had this hour that was not logged so I am posting this.
Ships:
This is a page made for one of my dearest friends’ birthday. I am incredibly proud of doing this but I am kind of sad that I only posted only 4 web vlogs but I kept on putting it off. It only uses placeholders for messages and photos for privacy.
This is a page made for one of my dearest friends’ birthday. I am incredibly proud of doing this but I am kind of sad that I only posted only 4 web vlogs but I kept on putting it off. It only uses placeholders for messages and photos for privacy. This ship is only because I added the password which was way harder than I thought. The password is “password”...
|
1792835383.9386587
|
1792921783.9386587
|
|
37382
|
My Website! by @Dana | Stardance
|
Dana
|
2
|
31.0
|
195
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T01:05:21Z", "hours": 27.0, "multiplier": 7.01, "payout": 188, "blessing": "neutral", "text": "I decided to do this to experiment with a new language and create a page about myself—so people can get to know me, or simply as a project I can improve later on.", "repo": "https://github.com/danovich2009-design/Mi-pagina", "demo": "https://mywebpagedanrl.netlify.app"}, {"ship_num": 2, "ts": "2026-07-19T20:40:30Z", "hours": 4.0, "multiplier": 2.04, "payout": 7, "blessing": "neutral", "text": "I created a personal “About Me” webpage featuring a modern, dark, and elegant design using my favorite colors; I built the foundation of the site using HTML and Tailwind CSS. It includes sections covering my background, my home country (Colombia), my passion for horseback riding, my favorite video games, and a card-based gallery. It is currently in beta, as I still need to polish a few details and refine certain design elements. The most challenging part was setting up the responsive structure and resolving technical issues related to images and browser compatibility. I am proud of the visual outcome, the thematic consistency, and the fact that I achieved a design that is both attractive and functional.", "repo": "https://github.com/danovich2009-design/Mi-pagina", "demo": "https://mywebpagedanrl.netlify.app"}]...
|
[{"post_id": 46065, "ts": "202 [{"post_id": 46065, "ts": "2026-08-13T00:38:07Z", "hours": 3.0808, "text": "After a few tweaks, translating all the text into English, and uploading my complete code to GitHub, I was finally able to finish my project :)"}, {"post_id": 42371, "ts": "2026-08-07T01:51:16Z", "hours": 3.0633, "text": "Today I’m starting to fix the HTML, and I decided to watch videos to learn more things to improve my page."}, {"post_id": 41096, "ts": "2026-08-05T02:34:14Z", "hours": 3.0069, "text": "Today I finally finished the CSS part—which took me four days—and it took so long because I ran into several errors I didn’t know how to fix."}, {"post_id": 40458, "ts": "2026-08-03T23:52:43Z", "hours": 2.0681, "text": "In my spare time, I managed to create a new page for the code, but I ran into some issues; since I haven’t finished the code yet, the main page looks disorganized and is missing the fonts I applied."}, {"post_id": 39251, "ts": "2026-08-02T03:14:46Z", "hours": 2.2356, "text": "Today, I can get a head start on the hobbies section and add a bit more movement to parts of my website to make it look more fluid."}, {"post_id": 38571, "ts": "2026-08-01T01:37:31Z", "hours": 3.3747, "text": "Today I started working on the second part of my website; I added more code and tried to make the page look better and be more organized. I still need to add some text, and then I’ll start on the third part."}, {"post_id": 33284, "ts": "2026-07-23T02:18:43Z", "hours": 1.845, "text": "I couldn’t make as much progress today, but I was able to implement new typefaces and create a new color palette that I’ll use for my page."}, {"post_id": 32738, "ts": "2026-07-22T02:37:34Z", "hours": 2.5075, "text": "Today, you can apply a new font to the home section of my page and change the text color."}, {"post_id": 32092, "ts": "2026-07-21T00:41:44Z", "hours": 5.1356, "text": "During my four hours of work today, I focused on reorganizing my webpage, writing new code, and integrating it with the existing code. I decided on a video-game-style theme for the homepage and began adding neon text and selecting a color palette."}, {"post_id": 31493, "ts": "2026-07-19T22:10:58Z", "hours": 0.4536, "text": "I added several sections: “Where I’m from,” “My country,” “Horseback riding,” “Video games,” and a card featuring my cat. I swapped out some images for more personal photos. I improved the layout and standardized the image sizes. I fixed coding errors and restructured the page to make it look better. I updated the GitHub README. Current status: The site is functional and in beta. I still want to keep refining it (tweaking details, adding social media links, etc.). I’m happy with the progress; I learned a lot about HTML, Tailwind, and how to organize a web project."}, {"post_id": 31455, "ts": "2026-07-19T20:32:08Z", "hours": 0.4617, "text": "Changing my page to https"}, {"post_id": 31410, "ts": "2026-07-19T19:11:29Z", "hours": 3.1539, "text": "Understanding how to create a website"}]...
|
Title: My Website! by @Dana | Stardance
Devlogs:
Title: My Website! by @Dana | Stardance
Devlogs:
Understanding how to create a website
Changing my page to https
I added several sections: “Where I’m from,” “My country,” “Horseback riding,” “Video games,” and a card featuring my cat. I swapped out some images for more personal photos. I improved the layout and standardized the image sizes. I fixed coding errors and restructured the page to make it look better. I updated the GitHub README. Current status: The site is functional and in beta. I still want to keep refining it (tweaking details, adding social media links, etc.). I’m happy with the progress; I learned a lot about HTML, Tailwind, and how to organize a web project.
During my four hours of work today, I focused on reorganizing my webpage, writing new code, and integrating it with the existing code. I decided on a video-game-style theme for the homepage and began adding neon text and selecting a color palette.
Today, you can apply a new font to the home section of my page and change the text color.
I couldn’t make as much progress today, but I was able to implement new typefaces and create a new color palette that I’ll use for my page.
Today I started working on the second part of my website; I added more code and tried to make the page look better and be more organized. I still need to add some text, and then I’ll start on the third part.
Today, I can get a head start on the hobbies section and add a bit more movement to parts of my website to make it look more fluid.
In my spare time, I managed to create a new page for the code, but I ran into some issues; since I haven’t finished the code yet, the main page looks disorganized and is missing the fonts I applied.
Today I finally finished the CSS part—which took me four days—and it took so long because I ran into several errors I didn’t know how to fix.
Today I’m starting to fix the HTML, and I decided to watch videos to learn more things to improve my page.
After a few tweaks, translating all the text into English, and uploading my complete code to GitHub, I was finally able to finish my project :)
Ships:
I created a personal “About Me” webpage featuring a modern, dark, and elegant design using my favorite colors; I built the foundation of the site using HTML and Tailwind CSS. It includes sections covering my background, my home country (Colombia), my passion for horseback riding, my favorite video games, and a card-based gallery. It is currently in beta, as I still need to polish a few details and refine certain design elements. The most challenging part was setting up the responsive structure and resolving technical issues related to images and browser compatibility. I am proud of the visual outcome, the thematic consistency, and the fact that I achieved a design that is both attractive and functional.
I decided to do this to experiment with a new language and create a page about myself—so people can get to know me, or simply as a project I can improve later on....
|
1792828477.5929306
|
1792914877.5929306
|
|
37502
|
bestspark.org by @BestSpark687090 | Stardance
|
BestSpark687090
|
2
|
26.34
|
159
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-11T20:33:11Z", "hours": 10.0, "multiplier": 7.21, "payout": 70, "blessing": "neutral", "text": "This is my second ship of my unblocked games site. It’s named “BestSpark’s Site” but i named the project bestspark.org because why not. This first image you see? That’s the “cloak” of the site, making it appear harmless at first. Second image is the actual site, by the way. Kinda weird I can’t add more than 2 images… oh well. I do have a bunch of games on it, so why not try it? The link to my discord server is… here if i did that right. I… don’t know and I forget how to actually do it sometimes. I’m shipping now because my school starts in 2 days… and I 100% won’t have time to code and have the time show up here. I think. I hope you have a great rest of your day/night!", "repo": "https://github.com/BestSpark687090/BestSpark687090", "demo": "https://bestspark.org"}, {"ship_num": 2, "ts": "2026-07-30T02:08:13Z", "hours": 9.0, "multiplier": 9.89, "payout": 89, "blessing": "neutral", "text": "Have you ever wanted a game website for school that would… hopefully- be unblocked? well look no further than bestspark.org! this is my personal site, and you can experience it yourself today. it’s not really a… personal site, but I’d call it close enough. there are a BUNCH of games, with a built in cloaking feature (it does it on open, or you can press escape 3 times!) i’ve been working on this project for a while now… and i kinda hope you enjoy it. if you uhh- really want to- you can join my discord at discord.gg/bestspark i guess. (PS: this wasnt started during stardance… but it’s my site. what can you really do about it :P) anyways have fun and uhhh- enjoy the rest of your day/night, person who’s reading this :)", "repo": "https://github.com/BestSpark687090/BestSpark687090", "demo": "https://bestspark.org"}]...
|
[{"post_id": 52503, "ts": "202 [{"post_id": 52503, "ts": "2026-08-22T17:22:43Z", "hours": 7.34, "text": "so i set up sparky ai the walmart ai. yeah. its avaliable at any of my links. Username and password is “sparky” it has access to my cart. it can add. people have already added too many things. please just dont add anything for the time being if you jailbreak it please contact me i want to use it okay thank you so much you have a great day"}, {"post_id": 45006, "ts": "2026-08-11T04:26:17Z", "hours": 1.4878, "text": "well i did it! the singlefile has been made successfully ! yippee! i did a cool thing i guess! i also made a wisp server changing thingy as well but its not visible in the screenshot the “wisp server” is to proxy requests to my server even if it’s blocked in your school example, my school has my website blocked (it got too popular, it was actually unblocked before) so i’d use a different link of mine to view it instead! (the links are in my discord server right here !) have a great morning/evening/night depending on the time you read this"}, {"post_id": 44871, "ts": "2026-08-10T22:11:29Z", "hours": 1.9111, "text": "nevermind its not going so good anymore this bug is plaguing the singlefile pieces at least i have an svg maker for it so i can use it like that buuuuuuuuut i gotta fix these bugs first."}, {"post_id": 44779, "ts": "2026-08-10T19:45:56Z", "hours": 3.6083, "text": "I’m SingleFiling now! this is genuinely going so good!!!!! games even work now! i’m finalizing everything up and will be out soon!!!!"}, {"post_id": 44420, "ts": "2026-08-10T05:18:01Z", "hours": 0.6111, "text": "devlog #i have no idea what number this is i’ve been asking ais i have access to (gpt, claude, (i even decided to ask deepseek too, made an account rq)) about what i could fix on my site. image 1: gpt telling me about the games section image 2: gpt - summary of what ive said to it or whatever image 3: deepseek telling me what i should change i could ask more ais but im already wasting enough water as is. thank you for reading"}, {"post_id": 43616, "ts": "2026-08-08T23:55:33Z", "hours": 1.4714, "text": "I’ve been making a settings page! It’s linked on a gear icon in the bottom right. All colors automatically change when you change them, too! ok byeeee :P"}, {"post_id": 43530, "ts": "2026-08-08T21:03:21Z", "hours": 0.5617, "text": "i made https://bestspark.hackclub.app a valid link! i forgot why i have these 17 minutes of time but im using them now ok bye"}, {"post_id": 36842, "ts": "2026-07-29T05:00:54Z", "hours": 1.1319, "text": "the egg in between. (deltarune reference) https://egg.bestspark.org (i’ve been seeing this EVERYWHERE on my tiktok feed so i decided to do a little funny with it)"}, {"post_id": 36201, "ts": "2026-07-28T04:08:59Z", "hours": 2.4175, "text": "so turns out its devlog 8 time ive been trying so hard to get this singlefile working im gonna be so honest though has anyone asked if i should…? I’m just kidding. This might be useful for later techniques though! Right now, it’s in the linking phase, where all the scripts are linked via actual external JS files. Also, I removed the images that are grabbed weirdly (aka, not from gn-math) and just slapped a image i made in like a minute about how to remove that. in my opinion though… i’m not even sure if i should’ve made this. You gotta do it just because though. Goodnight. (Or whatever, depending on timezones and other things)"}, {"post_id": 35622, "ts": "2026-07-27T05:18:58Z", "hours": 0.3764, "text": "devlog 6 i believe? I did it. It is currently 12:17 AM and I have stuff to do tomorrow. The singlefile has been made successfully. Unfortunately, it only shows one game section because I can’t get the others to show. That will HOPEFULLY be fixed up soon when I get the courage to! Anyways, this was kinda exhausting to make. Goodnight. Here’s the file link. Download it and open it up! https://github.com/BestSpark687090/stupid_singlefile/blob/main/single-min.html"}, {"post_id": 35615, "ts": "2026-07-27T04:36:23Z", "hours": 1.7222, "text": "devlog numero cinco (5) im making a singlefile. the biggest problem with it’s gonna be that it’s gotta be updated manually and… that’s kinda tough. i could probably make a script that does it for me… to be honest. Problem is, i’ve changed so much that it literally needs to be an EXTREMELY goofy script and would need to figure out how to get all the css and js in there properly. for now, im not even singlefiling it fully. The CSS and JS are in separate files… for now. wish me luck, i guess."}, {"post_id": 35506, "ts": "2026-07-26T23:56:02Z", "hours": 0.7431, "text": "devlog number 4 i guess? im gonna be so honest i didnt even KNOW i had 25 minutes logged - im gonna use them tho! so ive added a couple games- probably mostly just 15% in the top left. i found it here, so i thought i might as well use it heres what my current “web ports” section looks like! of course, there’s a whole lot more games actually there, but these are ones ive ported myself. anyways uhhh you people enjoy the rest of your day and thanks for reading this"}, {"post_id": 32445, "ts": "2026-07-21T17:16:47Z", "hours": 0.9, "text": "i guess devlog number four so i webported a game i managed to figure out how to get actual time on it it was one of those baldi “numberslop” mods its called hydrogen and yes its on my games section now ok bye"}, {"post_id": 32084, "ts": "2026-07-21T00:23:50Z", "hours": 0.7664, "text": "devlog number 3 perchance so first things first ive been verified so people can see these goofy ahh posts? yay. so uhhhhhh there aren’t really any visible changes however i did re-format most of the code using prettier the other thing i did was actually change some of the links that were blocked to actual unblocked links. probably gonna try to add some games and figure out how in the world i can classify that as time on here okay thats all goobbye"}, {"post_id": 31925, "ts": "2026-07-20T18:32:38Z", "hours": 0.995, "text": "devlog number 2 i guess? literally the only new visible thing is the about:blank warning and you can press a to toggle on and off the about:blank cloaking (aka hiding the website in a lil secret-ish window) theres probably gonna be more today but that might be it for now"}, {"post_id": 31623, "ts": "2026-07-20T05:35:44Z", "hours": 0.3933, "text": "okay uhhh devlog number one as they say so basically for some actual context ive been making an unblocked games site for a while now- i decided to post it here because i saw this on a discord and… well yeah im here now today i uhhh basically made some slight tweaks to the code, moved a section from the index to a different part of the page, and made it better to not be seen by the filter scanners. lil anti-climactic for the first one but oh well."}]...
|
Title: bestspark.org by @BestSpark687090 | Stardan Title: bestspark.org by @BestSpark687090 | Stardance
Devlogs:
okay uhhh devlog number one as they say so basically for some actual context ive been making an unblocked games site for a while now- i decided to post it here because i saw this on a discord and… well yeah im here now today i uhhh basically made some slight tweaks to the code, moved a section from the index to a different part of the page, and made it better to not be seen by the filter scanners. lil anti-climactic for the first one but oh well.
devlog number 2 i guess? literally the only new visible thing is the about:blank warning and you can press a to toggle on and off the about:blank cloaking (aka hiding the website in a lil secret-ish window) theres probably gonna be more today but that might be it for now
devlog number 3 perchance so first things first ive been verified so people can see these goofy ahh posts? yay. so uhhhhhh there aren’t really any visible changes however i did re-format most of the code using prettier the other thing i did was actually change some of the links that were blocked to actual unblocked links. probably gonna try to add some games and figure out how in the world i can classify that as time on here okay thats all goobbye
i guess devlog number four so i webported a game i managed to figure out how to get actual time on it it was one of those baldi “numberslop” mods its called hydrogen and yes its on my games section now ok bye
devlog number 4 i guess? im gonna be so honest i didnt even KNOW i had 25 minutes logged - im gonna use them tho! so ive added a couple games- probably mostly just 15% in the top left. i found it here, so i thought i might as well use it heres what my current “web ports” section looks like! of course, there’s a whole lot more games actually there, but these are ones ive ported myself. anyways uhhh you people enjoy the rest of your day and thanks for reading this
devlog numero cinco (5) im making a singlefile. the biggest problem with it’s gonna be that it’s gotta be updated manually and… that’s kinda tough. i could probably make a script that does it for me… to be honest. Problem is, i’ve changed so much that it literally needs to be an EXTREMELY goofy script and would need to figure out how to get all the css and js in there properly. for now, im not even singlefiling it fully. The CSS and JS are in separate files… for now. wish me luck, i guess.
devlog 6 i believe? I did it. It is currently 12:17 AM and I have stuff to do tomorrow. The singlefile has been made successfully. Unfortunately, it only shows one game section because I can’t get the others to show. That will HOPEFULLY be fixed up soon when I get the courage to! Anyways, this was kinda exhausting to make. Goodnight. Here’s the file link. Download it and open it up! https://github.com/BestSpark687090/stupid_singlefile/blob/main/single-min.html
so turns out its devlog 8 time ive been trying so hard to get this singlefile working im gonna be so honest though has anyone asked if i should…? I’m just kidding. This might be useful for later techniques though! Right now, it’s in the linking phase, where all the scripts are linked via actual external JS files. Also, I removed the images that are grabbed weirdly (aka, not from gn-math) and just slapped a image i made in like a minute about how to remove that. in my opinion though… i’m not even sure if i should’ve made this. You gotta do it just because though. Goodnight. (Or whatever, depending on timezones and other things)
the egg in between. (deltarune reference) https://egg.bestspark.org (i’ve been seeing this EVERYWHERE on my tiktok feed so i decided to do a little funny with it)
i made https://bestspark.hackclub.app a valid link! i forgot why i have these 17 minutes of time but im using them now ok bye
I’ve been making a settings page! It’s linked on a gear icon in the bottom right. All colors automatically change when you change them, too! ok byeeee :P
devlog #i have no idea what number this is i’ve been asking ais i have access to (gpt, claude, (i even decided to ask deepseek too, made an account rq)) about what i could fix on my site. image 1: gpt telling me about the games section image 2: gpt - summary of what ive said to it or whatever image 3: deepseek telling me what i should change i could ask more ais but im already wasting enough water as is. thank you for reading
I’m SingleFiling now! this is genuinely going so good!!!!! games even work now! i’m finalizing everything up and will be out soon!!!!
nevermind its not going so good anymore this bug is plaguing the singlefile pieces at least i have an svg maker for it so i can use it like that buuuuuuuuut i gotta fix these bugs first.
well i did it! the singlefile has been made successfully ! yippee! i did a cool thing i guess! i also made a wisp server changing thingy as well but its not visible in the screenshot the “wisp server” is to proxy requests to my server even if it’s blocked in your school example, my school has my website blocked (it got too popular, it was actually unblocked before) so i’d use a different link of mine to view it instead! (the links are in my discord server right here !) have a great morning/evening/night depending on the time you read this
so i set up sparky ai the walmart ai. yeah. its avaliable at any of my links. Username and password is “sparky” it has access to my cart. it can add. people have already added too many things. please just dont add anything for the time being if you jailbreak it please contact me i want to use it okay thank you so much you have a great day
Ships:
Have you ever wanted a game website for school that would… hopefully- be unblocked? well look no further than bestspark.org! this is my personal site, and you can experience it yourself today. it’s not really a… personal site, but I’d call it close enough. there are a BUNCH of games, with a built in cloaking feature (it does it on open, or you can press escape 3 times!) i’ve been working on this project for a while now… and i kinda hope you enjoy it. if you uhh- really want to- you can join my discord at discord.gg/bestspark i guess. (PS: this wasnt started during stardance… but it’s my site. what can you really do about it :P) anyways have fun and uhhh- enjoy the rest of your day/night, person who’s reading this :)
This is my second ship of my unblocked games site. It’s named “BestSpark’s Site” but i named the project bestspark.org because why not. This first image you see? That’s the “cloak” of the site, making it appear harmless at first. Second image is the actual site, by the way. Kinda weird I can’t add more than 2 images… oh well. I do have a bunch of games on it, so why not try it? The link to my discord server is… here if i did that right. I… don’t know and I forget how to actually do it sometimes. I’m shipping now because my school starts in 2 days… and I 100% won’t have time to code and have the time show up here. I think. I hope you have a great rest of your day/night!...
|
1792835791.8085077
|
1792922191.8085077
|
|
37540
|
ShotOS by @OneShot | Stardance
|
OneShot
|
2
|
57.0
|
176
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T00:50:51Z", "hours": 33.0, "multiplier": 6.0, "payout": 176, "blessing": "neutral", "text": "I made a Web Os based after the game - OneShot", "repo": "https://github.com/Zlati839/ShotOs", "demo": "https://zlati839.github.io/ShotOs/"}, {"ship_num": 2, "ts": "2026-07-22T17:10:18Z", "hours": 24.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finished the WebOs1 Project :D !!!", "repo": "https://github.com/Zlati839/ShotOs", "demo": "https://zlati839.github.io/ShotOs/"}]...
|
[{"post_id": 45485, "ts": "202 [{"post_id": 45485, "ts": "2026-08-12T00:33:37Z", "hours": 12.0894, "text": "So . Added a loading screen a bar for the apps to stay in , it can also be hidden , Terminal and a draggable calendar widget"}, {"post_id": 39143, "ts": "2026-08-01T21:12:51Z", "hours": 9.3092, "text": "Made some changes 1. Finished the settings and now the wallpapers is changeable with four in total - two static and two live , and any customization is saved after the user leaves 2. Added a Drawing app that also saves after the user leaves 3. Added a Browser that’s just the OneShot wikipedia page 4. And a simple calculator page"}, {"post_id": 36072, "ts": "2026-07-27T22:32:20Z", "hours": 11.3989, "text": "Added a Task bar , changed the clock app to settings , added a minimize button to the apps and made an app catalog !!!! :D"}, {"post_id": 33060, "ts": "2026-07-22T17:07:13Z", "hours": 0.47, "text": "Made settings for the Clock for now you can change color and hide it"}, {"post_id": 32979, "ts": "2026-07-22T14:27:01Z", "hours": 9.5464, "text": "Made a Music Player too !!!!! For now there are only 6 songs in it"}, {"post_id": 31668, "ts": "2026-07-20T08:33:48Z", "hours": 13.6178, "text": "made the File manager it has README and 2 foulders"}]...
|
Title: ShotOS by @OneShot | Stardance
Devlogs:
ma Title: ShotOS by @OneShot | Stardance
Devlogs:
made the File manager it has README and 2 foulders
Made a Music Player too !!!!! For now there are only 6 songs in it
Made settings for the Clock for now you can change color and hide it
Added a Task bar , changed the clock app to settings , added a minimize button to the apps and made an app catalog !!!! :D
Made some changes 1. Finished the settings and now the wallpapers is changeable with four in total - two static and two live , and any customization is saved after the user leaves 2. Added a Drawing app that also saves after the user leaves 3. Added a Browser that’s just the OneShot wikipedia page 4. And a simple calculator page
So . Added a loading screen a bar for the apps to stay in , it can also be hidden , Terminal and a draggable calendar widget
Ships:
Finished the WebOs1 Project :D !!!
I made a Web Os based after the game - OneShot...
|
1792839329.141551
|
1792925729.141551
|
|
37558
|
GlassTab - my APOD site by @Ayon | Stardance
|
Ayon
|
2
|
4.0
|
4
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-21T17:02:12Z", "hours": 1.0, "multiplier": 8.77, "payout": 4, "blessing": "neutral", "text": "I added Bing Picture of the Day as a wallpaper provider alongside NASA APOD. The challenging part was the data mapping for the Bing to the current NASA APOD only structure", "repo": "https://github.com/amiayon8/glass-tab", "demo": "https://glasstab.thenicedev.xyz/"}, {"ship_num": 2, "ts": "2026-07-20T14:02:51Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a new tab page with the NASA APOD API. I can choose the search engines and add shortcuts. Unlike other browsers that force us to use their browser. To save time, I asked chatGPT to make a gradient for the popup cards.", "repo": "https://github.com/amiayon8/glass-tab", "demo": "https://glasstab.thenicedev.xyz/"}]...
|
[{"post_id": 35619, "ts": "202 [{"post_id": 35619, "ts": "2026-07-27T05:07:38Z", "hours": 0.3706, "text": "Added customizable search engine and some minor state handling updates"}, {"post_id": 35312, "ts": "2026-07-26T17:08:39Z", "hours": 0.2719, "text": "I have added custom search engine feature with super clean UI as always. How to use it? Click on the pencil icon, then select add search engine in the search engines select and add your search engine url. Use %s for the query"}, {"post_id": 35297, "ts": "2026-07-26T16:42:34Z", "hours": 0.3569, "text": "The ratings say that I should improve my devlogs, add custom search engines and some said that I should add google and other search engines. I am adding the custom search engine feature and improving my devlogs. Here is the screenshot how you can select the preset browsers."}, {"post_id": 32440, "ts": "2026-07-21T17:00:58Z", "hours": 0.9353, "text": "Added Bing as a wallpaper provider alongside NASA APOD for wallpaper."}, {"post_id": 31791, "ts": "2026-07-20T13:52:53Z", "hours": 0.3136, "text": "Added Search Engine Selection(Google, Bing, DuckDuckGo, Yahoo, Ecosia, Baidu, Yandex). Now time for deployment and my project can be shipped"}, {"post_id": 31782, "ts": "2026-07-20T13:32:35Z", "hours": 0.99, "text": "Added shortcuts, made shortcut creation and deletion in localStorage. Things work just fine but I need to update the UI and automate the icon process"}, {"post_id": 31726, "ts": "2026-07-20T11:07:42Z", "hours": 0.4061, "text": "Just added a working google search bar!"}, {"post_id": 31717, "ts": "2026-07-20T10:40:36Z", "hours": 0.6619, "text": "Just added the NASA APOD API for wallpapers."}]...
|
Title: GlassTab - my APOD site by @Ayon | Stardanc Title: GlassTab - my APOD site by @Ayon | Stardance
Devlogs:
Just added the NASA APOD API for wallpapers.
Just added a working google search bar!
Added shortcuts, made shortcut creation and deletion in localStorage. Things work just fine but I need to update the UI and automate the icon process
Added Search Engine Selection(Google, Bing, DuckDuckGo, Yahoo, Ecosia, Baidu, Yandex). Now time for deployment and my project can be shipped
Added Bing as a wallpaper provider alongside NASA APOD for wallpaper.
The ratings say that I should improve my devlogs, add custom search engines and some said that I should add google and other search engines. I am adding the custom search engine feature and improving my devlogs. Here is the screenshot how you can select the preset browsers.
I have added custom search engine feature with super clean UI as always. How to use it? Click on the pencil icon, then select add search engine in the search engines select and add your search engine url. Use %s for the query
Added customizable search engine and some minor state handling updates
Ships:
I made a new tab page with the NASA APOD API. I can choose the search engines and add shortcuts. Unlike other browsers that force us to use their browser. To save time, I asked chatGPT to make a gradient for the popup cards.
I added Bing Picture of the Day as a wallpaper provider alongside NASA APOD. The challenging part was the data mapping for the Bing to the current NASA APOD only structure...
|
1792810455.6265574
|
1792896855.6265574
|
|
37757
|
Doodle Arcade by @ruter | Stardance
|
ruter
|
2
|
24.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-26T18:25:34Z", "hours": 19.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "WE FINISHED!!! The game is complete, and it came out pretty well. There were a lot of bugs in the way, but we’ve overcame them and build one of the best games ever created by us. We are really excited to show you our game Doodle Arcade, which features 3 minigames. I don’t want to spoil the game too much, just try it yourself! https://rutra8002.itch.io/doodle-arcade", "repo": "https://github.com/Saniccxx/gmtk-jam", "demo": "https://rutra8002.itch.io/doodle-arcade"}, {"ship_num": 2, "ts": "2026-07-20T20:24:52Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Features Added: Parkour Minigame: Added procedural platform generation, lava hazards, and distance tracking. Space Masher Minigame: Created a second microgame requiring 10 spacebar presses in 5 seconds. Hub Map: Configured the main map to select and load minigames randomly. Win/Loss Screens: Integrated original Victory and Defeat screens. This is very early build of the project, gonna improve it in the future!", "repo": "https://github.com/Saniccxx/gmtk-jam", "demo": "https://rutra8002.itch.io/doodle-arcade"}]...
|
[{"post_id": 35364, "ts": "202 [{"post_id": 35364, "ts": "2026-07-26T18:24:18Z", "hours": 5.1983, "text": "WE FINISHED!!! The game is complete, and it came out pretty well. There were a lot of bugs in the way, but we’ve overcame them and build one of the best games ever created by us. We are really excited to show you our game Doodle Arcade, which features 3 minigames. I don’t want to spoil the game too much, just try it yourself! https://rutra8002.itch.io/doodle-arcade"}, {"post_id": 35048, "ts": "2026-07-26T06:55:44Z", "hours": 8.0947, "text": "Hey! We have changed the art style a lot, added some music and added a lot more screens which I can’t show here as I can only include one screenshot, progress is going great and we plan on finishing today"}, {"post_id": 33381, "ts": "2026-07-23T08:33:44Z", "hours": 6.1472, "text": "Hey, been working 4 some time, had fan with shaders, tried to add some type of hud, and more architectural and algorithmic changes like make sure player is actually able to get onto ramp etc"}, {"post_id": 31939, "ts": "2026-07-20T19:06:10Z", "hours": 5.1511, "text": "Features Added: Parkour Minigame: Added procedural platform generation, lava hazards, and distance tracking. Space Masher Minigame: Created a second microgame requiring 10 spacebar presses in 5 seconds. Hub Map: Configured the main map to select and load minigames randomly. Win/Loss Screens: Integrated original Victory and Defeat screens."}]...
|
Title: Doodle Arcade by @ruter | Stardance
Devlog Title: Doodle Arcade by @ruter | Stardance
Devlogs:
Features Added: Parkour Minigame: Added procedural platform generation, lava hazards, and distance tracking. Space Masher Minigame: Created a second microgame requiring 10 spacebar presses in 5 seconds. Hub Map: Configured the main map to select and load minigames randomly. Win/Loss Screens: Integrated original Victory and Defeat screens.
Hey, been working 4 some time, had fan with shaders, tried to add some type of hud, and more architectural and algorithmic changes like make sure player is actually able to get onto ramp etc
Hey! We have changed the art style a lot, added some music and added a lot more screens which I can’t show here as I can only include one screenshot, progress is going great and we plan on finishing today
WE FINISHED!!! The game is complete, and it came out pretty well. There were a lot of bugs in the way, but we’ve overcame them and build one of the best games ever created by us. We are really excited to show you our game Doodle Arcade, which features 3 minigames. I don’t want to spoil the game too much, just try it yourself! https://rutra8002.itch.io/doodle-arcade
Ships:
Features Added: Parkour Minigame: Added procedural platform generation, lava hazards, and distance tracking. Space Masher Minigame: Created a second microgame requiring 10 spacebar presses in 5 seconds. Hub Map: Configured the main map to select and load minigames randomly. Win/Loss Screens: Integrated original Victory and Defeat screens. This is very early build of the project, gonna improve it in the future!
WE FINISHED!!! The game is complete, and it came out pretty well. There were a lot of bugs in the way, but we’ve overcame them and build one of the best games ever created by us. We are really excited to show you our game Doodle Arcade, which features 3 minigames. I don’t want to spoil the game too much, just try it yourself! https://rutra8002.itch.io/doodle-arcade...
|
1792828554.8236344
|
1792914954.8236344
|
|
37851
|
Persona OS by @Amanojaku | Stardance
|
Amanojaku
|
2
|
17.89
|
36
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-31T22:02:34Z", "hours": 4.0, "multiplier": 9.97, "payout": 36, "blessing": "neutral", "text": "This is a beginner project where I learn html while making a WebOS. I added 4 more apps. An app that embeds Wikipedia, an app for drawing, a calendar app, and an app that lets you send me feedback via email. I think I’ll add a Spotify app, a Camera app, and a Youtube app.", "repo": "https://github.com/zxcvbnmzxcvbnmzxcv/PersonaOS", "demo": "https://zxcvbnmzxcvbnmzxcv.github.io/PersonaOS"}, {"ship_num": 2, "ts": "2026-07-29T20:48:15Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a WebOS based on the style of Persona 5. I used bright red, white, and black to mimic the style and a font. This is my first experience with html so it took me a while but the tutorial taught me a lot. So far I only have 3 apps right now but I’ll add more in WebOS 2. I also think I’ll add icons for the close and next buttons.", "repo": "https://github.com/zxcvbnmzxcvbnmzxcv/PersonaOS", "demo": "https://zxcvbnmzxcvbnmzxcv.github.io/PersonaOS"}]...
|
[{"post_id": 39870, "ts": "202 [{"post_id": 39870, "ts": "2026-08-03T04:21:30Z", "hours": 0.4275, "text": "Added sound effects to morgana clicker also RIP broken day streak"}, {"post_id": 39839, "ts": "2026-08-03T02:58:47Z", "hours": 0.4667, "text": "Added autoclicker upgrade to morgana clicker"}, {"post_id": 38487, "ts": "2026-07-31T21:53:56Z", "hours": 0.4289, "text": "Fixed icon selection and also added an upgrade for Morgana clicker."}, {"post_id": 38466, "ts": "2026-07-31T21:09:15Z", "hours": 0.3589, "text": "I added a feedback system where you can type a message and send it to my email."}, {"post_id": 38451, "ts": "2026-07-31T20:25:25Z", "hours": 0.7236, "text": "Added a drawing app to draw cool things like Morgana."}, {"post_id": 38413, "ts": "2026-07-31T19:23:24Z", "hours": 0.3586, "text": "Added a Wikipedia embed app."}, {"post_id": 38381, "ts": "2026-07-31T18:45:40Z", "hours": 1.9008, "text": "Created a calendar app styled like Persona 5 and also added more details."}, {"post_id": 37256, "ts": "2026-07-29T20:29:49Z", "hours": 1.3342, "text": "Created a Morgana clicker game app where you click the morgana picture and the counter goes up."}, {"post_id": 37139, "ts": "2026-07-29T17:01:42Z", "hours": 2.4803, "text": "Finished the second app that lets you customize the desktop wallpaper."}, {"post_id": 36770, "ts": "2026-07-29T01:19:11Z", "hours": 5.5031, "text": "I finished my first app for documenting birds and bears."}, {"post_id": 35481, "ts": "2026-07-26T23:04:03Z", "hours": 3.0128, "text": "I added a font, and stylized a template for divs with an open and close button."}, {"post_id": 34916, "ts": "2026-07-26T00:42:01Z", "hours": 0.9839, "text": "Persona OS: finishing the welcome div and learning html"}]...
|
Title: Persona OS by @Amanojaku | Stardance
Devlo Title: Persona OS by @Amanojaku | Stardance
Devlogs:
Persona OS: finishing the welcome div and learning html
I added a font, and stylized a template for divs with an open and close button.
I finished my first app for documenting birds and bears.
Finished the second app that lets you customize the desktop wallpaper.
Created a Morgana clicker game app where you click the morgana picture and the counter goes up.
Created a calendar app styled like Persona 5 and also added more details.
Added a Wikipedia embed app.
Added a drawing app to draw cool things like Morgana.
I added a feedback system where you can type a message and send it to my email.
Fixed icon selection and also added an upgrade for Morgana clicker.
Added autoclicker upgrade to morgana clicker
Added sound effects to morgana clicker also RIP broken day streak
Ships:
I made a WebOS based on the style of Persona 5. I used bright red, white, and black to mimic the style and a font. This is my first experience with html so it took me a while but the tutorial taught me a lot. So far I only have 3 apps right now but I’ll add more in WebOS 2. I also think I’ll add icons for the close and next buttons.
This is a beginner project where I learn html while making a WebOS. I added 4 more apps. An app that embeds Wikipedia, an app for drawing, a calendar app, and an app that lets you send me feedback via email. I think I’ll add a Spotify app, a Camera app, and a Youtube app....
|
1792838872.5177867
|
1792925272.5177867
|
|
37990
|
My own site! by @Charfol | Stardance
|
Charfol
|
2
|
14.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-14T20:49:43Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my own personal site! It was my learning experience for html and css. The site consists of 2 pages which are an about me and a portfolio. Most of my time making this website was spent on my about me, where I spent time making the sticky notes work properly and look realistic. I’m proud of how it looks; although some organization in the code and github could be better.", "repo": "https://github.com/Charfoal/Personal-Site-2.0", "demo": "https://charfoal.github.io/Sticky-Notes/"}, {"ship_num": 2, "ts": "2026-07-31T19:51:42Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my own site! My first time working with HTML, I made this. My largest struggle was with getting the pages to work, as it was my first time working with Github pages too. It was pretty fun to make!", "repo": "https://github.com/Charfoal/Personal-Site-2.0", "demo": "https://charfoal.github.io/Sticky-Notes/"}]...
|
[{"post_id": 47153, "ts": "202 [{"post_id": 47153, "ts": "2026-08-14T20:45:22Z", "hours": 1.5047, "text": "Finished the portfolio page and added the links for the navbar. I got the repositories working (though not in the best way) and am finally shipping my site."}, {"post_id": 46107, "ts": "2026-08-13T02:58:19Z", "hours": 10.2817, "text": "I spent a couple hours making a sticky notes platform. It took me a while, as I was learning html and css for the first time along with it. I am not attaching a test as I will post everything at once, because, due to my ship getting rejected, I decided to redo it all and make it my best work, so I will also have to post my new GitHub repository."}, {"post_id": 38344, "ts": "2026-07-31T17:59:40Z", "hours": 2.3247, "text": "I added multiple pages to my personal site! I spent a while trying to make multiple pages work. I finally got it working by using multiple repos to have the pages for all the sites. The repository that I have attached has all of the code for all the pages."}]...
|
Title: My own site! by @Charfol | Stardance
Devlo Title: My own site! by @Charfol | Stardance
Devlogs:
I added multiple pages to my personal site! I spent a while trying to make multiple pages work. I finally got it working by using multiple repos to have the pages for all the sites. The repository that I have attached has all of the code for all the pages.
I spent a couple hours making a sticky notes platform. It took me a while, as I was learning html and css for the first time along with it. I am not attaching a test as I will post everything at once, because, due to my ship getting rejected, I decided to redo it all and make it my best work, so I will also have to post my new GitHub repository.
Finished the portfolio page and added the links for the navbar. I got the repositories working (though not in the best way) and am finally shipping my site.
Ships:
I made my own site! My first time working with HTML, I made this. My largest struggle was with getting the pages to work, as it was my first time working with Github pages too. It was pretty fun to make!
I made my own personal site! It was my learning experience for html and css. The site consists of 2 pages which are an about me and a portfolio. Most of my time making this website was spent on my about me, where I spent time making the sticky notes work properly and look realistic. I’m proud of how it looks; although some organization in the code and github could be better....
|
1792849665.0648863
|
1792936065.0648863
|