|
14413
|
quartz by @p0tato | Stardance
|
p0tato
|
1
|
41.0
|
670
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-03T05:04:04Z", "hours": 41.0, "multiplier": 17.33, "payout": 670, "blessing": "neutral", "text": "I made Quartz, a desktop automation app for Windows and Linux. It’s pretty similar to the Shortcuts app on MacOS. Quartz allows you to create shortcuts, which are lists of actions, that run things on your computer, whether that is read a file, send a web request, or something else. These shortcuts can be activated manually or using triggers (e.g. at a certain time). The main reason I created this, and the most important QoL improvement is that with Quartz, you can easily create and manage small scripts that do stuff on your computer, like watch a file or directory and running subsequent actions. The most challenging part was adapting/scrapping features for Linux, since a user’s environment can be very different from another user’s environment, so I had to choose some important features and scrap the unrealistic ones. For example, I really wanted to add an emulate mouse/keyboard button action, but it simply wasn’t feasible, since the app would have to require root privileges on both platforms, which was something I was trying to avoid. I am proud of how the project turned out, but especially the user interface, since it took a while to design and actually build the interface, and I think it turned out well, with a bit room for improvement. Some UI changes will come in future updates. To test the project, you first need to make sure that you are on either Windows or a systemd-based Linux distribution. Then you can simply just follow the instructions on the README. The app uses a Python FastAPI daemon with a Flutter UI. To save memory, the UI is a completely seperate process than the daemon, so it’s OK to close the app window/kill the UI process without affecting the backend.", "repo": "https://github.com/Someone68/quartz", "demo": "https://github.com/Someone68/quartz/releases/latest/"}]...
|
[{"post_id": 60650, "ts": "202 [{"post_id": 60650, "ts": "2026-09-03T04:38:11Z", "hours": 1.2889, "text": "i said last time that it was the final devlog before ship but then i realized there were a lot of bugs to fix and stuff so this the the ACTUAL final devlog before ship!!! changes include: bugfixes (a lot) github actions wiki/docs release 0.2.0"}, {"post_id": 59354, "ts": "2026-09-01T03:07:16Z", "hours": 2.7883, "text": "final devlog before ship!! i mostly just worked on refining the build process and bug fixing, which is why im not going over each change individually. the UI/UX could be improved, but its good enough for the initial ship. all that’s left: re-build the new binaries and release release the windows binaries ship!!! the very compressed and unreadable gif below is the one in the readme lol"}, {"post_id": 50702, "ts": "2026-08-20T01:03:03Z", "hours": 9.3431, "text": "FINALLY i got the build process and packaging working now it works and people can install it! windows works now too! i didnt have time to create a devlog until now so enjoy heres the full changelog: main changes: added action: truncate number allowed users to assign each shortcut a color removed shortcut icons since an icon picker would be really annoying to add overhauled the homepage, now you can select shortcuts, batch delete, and more (see screenshot!!) fixed kill process action disabled running a shortcut while it’s already running (very inconsistent behavior previously) UI now ensures that there is only one window using a weird hack fixed notifications not showing on windows removed emulate mouse button stub action (extremely difficult cross-platform) wrote some docs that i realize i need to update now since i changed the linux install process lol packaging AI: create the windows installer builder AI: create uninstaller create a logo that i put so much effort into (2 minutes in figma) a ton of other stuff including a whole build process for linux notes yea, i did use ai for some stuff, either because i was lazy or… yeah i was lazy. todo major UI improvements released binaries 🚢ing"}, {"post_id": 38525, "ts": "2026-07-31T23:15:42Z", "hours": 2.1325, "text": "quartz update 5.1: the actions update 1 added a ton of cool actions, heres the full list: NEW filesystem: create directory NEW filesystem: create file NEW filesystem: delete directory NEW filesystem: delete file NEW filesystem: get file properties NEW filesystem: read file NEW filesystem: write file NEW filesystem: rename or move file or directory NEW system: power - lock, logout, suspend, hibernate, shutdown, reboot NEW system: send notification NEW misc: send web request other changes: fixed some overflow issues in the UI ok bye new update coming soon"}, {"post_id": 37961, "ts": "2026-07-31T01:01:52Z", "hours": 2.9072, "text": "quartz update #5: the apps update smaller update this time changes added some config file support (located in USER/.config/quartz) added tooltips (?) to certain action inputs added the app selector, as seen in the screenshot below! action updates: NEW open app: opens an app using the selector NEW open link: opens a link, as a website, file, etc. NEW kill process: kills a process via app selector, name, or pid with the option to terminate instead WIP emulate mouse: stub (not implemented) trigger updates: app open: change to use app selector app close: change to use app selector lots of bugfixes, both on backend and UI fixed a lot of overflow issues on UI on smaller screens todo add the remaining trigger types add some more actions figure out how to build and package the app (really need this to ship) notes yes i am aware that deltarune is in my apps list, and yes i have played chapter five"}, {"post_id": 36177, "ts": "2026-07-28T03:00:44Z", "hours": 2.1269, "text": "quartz update #4 changes: optimize polling trigger listeners by limiting one polling agent per trigger type add more triggerss directory watch (file create/delete/rename) directory contents watch (file content changes) app open app close schedule (cron) fixed file watch trigger updated ui pubsec.yaml name to “quartz” instead of “ui” added bracket/quote formatting to text fields added trigger output usage in ui like action outputs allow viewing run logs from settings page"}, {"post_id": 32655, "ts": "2026-07-21T23:02:12Z", "hours": 2.9225, "text": "quartz update #3 changes: added some basic automatic shortcut triggers startup, file watch, clipboard watch will add more later fixed some issues and improved message box/dialog box (using ai) removed collapsible sidebar on editor page polishing/consistency changes including adding a mono font for text fields allow changing shortcut properties through inspector (see image) split editor page file into several modules (previously 1400+ lines long…) to-do: add more triggers and actions figure out how to detect hotkeys on linux (may not be possible on wayland) fix windows functionality figure out how to build/package app more stuff that i forgot about"}, {"post_id": 30446, "ts": "2026-07-18T00:19:18Z", "hours": 0.8075, "text": "update 2: made a cool thing where variables and outputs in a text field are highlighted (see right of image)"}, {"post_id": 29672, "ts": "2026-07-16T18:59:07Z", "hours": 4.3172, "text": "update: added drag and drop, added flow control, removed client side decorations on linux, and more"}, {"post_id": 28048, "ts": "2026-07-14T02:16:11Z", "hours": 12.6333, "text": "devlog #1 of quartz, a desktop automation app similar to shortcuts on ios/mac but for linux (and maybe windows in the future). the main idea is that you create shortcuts that contain multiple “steps”, which can do many things, including: setting a variable, showing a pop-up, running a command, and more. the main reason i decided to work on this is because making shell scripts and managing them are kind of annoying, so creating a nice interface to easily manage scripts (or shortcuts) would be very helpful. as for technical details, the backend (saving and running) uses a background python process, while the ui uses flutter and material design. current features done: basic backend (saving and running shortcuts), some ui (creating, editing shortcuts/steps). todo: add UI for control flow (if/else), add shortcut triggers (to automatically run shortcuts), add a lot more actions, improve the UI, (maybe) app integrations. the reason this took over 10hr is mostly because of the ui, since i am not the most familiar with flutter and there are a lot of moving parts."}]...
|
Title: quartz by @p0tato | Stardance
Devlogs:
dev Title: quartz by @p0tato | Stardance
Devlogs:
devlog #1 of quartz, a desktop automation app similar to shortcuts on ios/mac but for linux (and maybe windows in the future). the main idea is that you create shortcuts that contain multiple “steps”, which can do many things, including: setting a variable, showing a pop-up, running a command, and more. the main reason i decided to work on this is because making shell scripts and managing them are kind of annoying, so creating a nice interface to easily manage scripts (or shortcuts) would be very helpful. as for technical details, the backend (saving and running) uses a background python process, while the ui uses flutter and material design. current features done: basic backend (saving and running shortcuts), some ui (creating, editing shortcuts/steps). todo: add UI for control flow (if/else), add shortcut triggers (to automatically run shortcuts), add a lot more actions, improve the UI, (maybe) app integrations. the reason this took over 10hr is mostly because of the ui, since i am not the most familiar with flutter and there are a lot of moving parts.
update: added drag and drop, added flow control, removed client side decorations on linux, and more
update 2: made a cool thing where variables and outputs in a text field are highlighted (see right of image)
quartz update #3 changes: added some basic automatic shortcut triggers startup, file watch, clipboard watch will add more later fixed some issues and improved message box/dialog box (using ai) removed collapsible sidebar on editor page polishing/consistency changes including adding a mono font for text fields allow changing shortcut properties through inspector (see image) split editor page file into several modules (previously 1400+ lines long…) to-do: add more triggers and actions figure out how to detect hotkeys on linux (may not be possible on wayland) fix windows functionality figure out how to build/package app more stuff that i forgot about
quartz update #4 changes: optimize polling trigger listeners by limiting one polling agent per trigger type add more triggerss directory watch (file create/delete/rename) directory contents watch (file content changes) app open app close schedule (cron) fixed file watch trigger updated ui pubsec.yaml name to “quartz” instead of “ui” added bracket/quote formatting to text fields added trigger output usage in ui like action outputs allow viewing run logs from settings page
quartz update #5: the apps update smaller update this time changes added some config file support (located in USER/.config/quartz) added tooltips (?) to certain action inputs added the app selector, as seen in the screenshot below! action updates: NEW open app: opens an app using the selector NEW open link: opens a link, as a website, file, etc. NEW kill process: kills a process via app selector, name, or pid with the option to terminate instead WIP emulate mouse: stub (not implemented) trigger updates: app open: change to use app selector app close: change to use app selector lots of bugfixes, both on backend and UI fixed a lot of overflow issues on UI on smaller screens todo add the remaining trigger types add some more actions figure out how to build and package the app (really need this to ship) notes yes i am aware that deltarune is in my apps list, and yes i have played chapter five
quartz update 5.1: the actions update 1 added a ton of cool actions, heres the full list: NEW filesystem: create directory NEW filesystem: create file NEW filesystem: delete directory NEW filesystem: delete file NEW filesystem: get file properties NEW filesystem: read file NEW filesystem: write file NEW filesystem: rename or move file or directory NEW system: power - lock, logout, suspend, hibernate, shutdown, reboot NEW system: send notification NEW misc: send web request other changes: fixed some overflow issues in the UI ok bye new update coming soon
FINALLY i got the build process and packaging working now it works and people can install it! windows works now too! i didnt have time to create a devlog until now so enjoy heres the full changelog: main changes: added action: truncate number allowed users to assign each shortcut a color removed shortcut icons since an icon picker would be really annoying to add overhauled the homepage, now you can select shortcuts, batch delete, and more (see screenshot!!) fixed kill process action disabled running a shortcut while it’s already running (very inconsistent behavior previously) UI now ensures that there is only one window using a weird hack fixed notifications not showing on windows removed emulate mouse button stub action (extremely difficult cross-platform) wrote some docs that i realize i need to update now since i changed the linux install process lol packaging AI: create the windows installer builder AI: create uninstaller create a logo that i put so much effort into (2 minutes in figma) a ton of other stuff including a whole build process for linux notes yea, i did use ai for some stuff, either because i was lazy or… yeah i was lazy. todo major UI improvements released binaries 🚢ing
final devlog before ship!! i mostly just worked on refining the build process and bug fixing, which is why im not going over each change individually. the UI/UX could be improved, but its good enough for the initial ship. all that’s left: re-build the new binaries and release release the windows binaries ship!!! the very compressed and unreadable gif below is the one in the readme lol
i said last time that it was the final devlog before ship but then i realized there were a lot of bugs to fix and stuff so this the the ACTUAL final devlog before ship!!! changes include: bugfixes (a lot) github actions wiki/docs release 0.2.0
Ships:
I made Quartz, a desktop automation app for Windows and Linux. It’s pretty similar to the Shortcuts app on MacOS. Quartz allows you to create shortcuts, which are lists of actions, that run things on your computer, whether that is read a file, send a web request, or something else. These shortcuts can be activated manually or using triggers (e.g. at a certain time). The main reason I created this, and the most important QoL improvement is that with Quartz, you can easily create and manage small scripts that do stuff on your computer, like watch a file or directory and running subsequent actions. The most challenging part was adapting/scrapping features for Linux, since a user’s environment can be very different from another user’s environment, so I had to choose some important features and scrap the unrealistic ones. For example, I really wanted to add an emulate mouse/keyboard button action, but it simply wasn’t feasible, since the app would have to require root privileges on both platforms, which was something I was trying to avoid. I am proud of how the project turned out, but especially the user interface, since it took a while to design and actually build the interface, and I think it turned out well, with a bit room for improvement. Some UI changes will come in future updates. To test the project, you first need to make sure that you are on either Windows or a systemd-based Linux distribution. Then you can simply just follow the instructions on the README. The app uses a Python FastAPI daemon with a Flutter UI. To save memory, the UI is a completely seperate process than the daemon, so it’s OK to close the app window/kill the UI process without affecting the backend....
|
1792975786.8907113
|
1793062186.8907113
|
|
50489
|
Fluetro OS by @TonyStark965 | Stardance
|
TonyStark965
|
2
|
95.0
|
669
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-10T19:26:09Z", "hours": 36.0, "multiplier": 18.53, "payout": 669, "blessing": "neutral", "text": "I have now made Fluetro OS into a much more complete OS experience. It now has a working Browser, AI Brief, and some games, along with the previous Paint, Memo and Calculator apps. It now also includes a Boot screen and a Restart function, along with automatic and more consistent Accent Color theming throughout the UI. Also, the UI is now much more consistent with its icons and design. The biggest challenge for me was trying to “not” make silly mistakes, I’d forget a comma or a semi-colon somewhere or misspell something and it’d break the whole system. I especially had trouble with the animations and different app states. I am especially proud of how much the OS has evolved through the span of only a month, I tried my best to make it feel usable and interactive. To test it, just click try project and use it. The AI Brief feature will ask you for your location permission and if denied will resort to IP-based location, but the built-in weather system of the OS will require you to add your own location from the Quick Settings.", "repo": "https://github.com/TonyStark965-404/Fluetro-OS", "demo": "https://fluetro-os.vercel.app"}, {"ship_num": 2, "ts": "2026-08-18T18:02:07Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A WebOS inspired heavily from the Metro aesthetic from Windows 8/8.1 and Fluent Design aesthetic from Windows 11. Has multiple working apps, working login screen and desktop elements. Will get an update in the future for WebOS 2, with a working Start Screen inspired menu.", "repo": "https://github.com/TonyStark965-404/Fluetro-OS", "demo": "https://fluetro-os.vercel.app"}]...
|
[{"post_id": 82753, "ts": "202 [{"post_id": 82753, "ts": "2026-10-25T18:58:08Z", "hours": 3.4086, "text": "Fluetro OS DevLog 063 Redesigns, yayyy New stuff/changelog Files app now has Breadcrumbs design in the address bar instead of the normal “ \" style, you can’t click on them to change locations though, it just looks cleaner, and when you click it, it turns back to the “ \" style where you can edit stuff Quick settings redesign including all icons More additions to quick settings Find now supports keyboard input to select and launch items Did the HTML and CSS for some other little features that’ll be added All selection is now themed using Accent Color Added a text at the bottom of the Boot Screen prompting you to go Fullscreen mode “Escape” button on the keyboard can now be used to exit any input type box, like the Address Bar in the Files App, or the Custom Accent color and Weather location fields in the Settings app. Added an Easter egg (not gonna show that though) Fixes As I said under “New stuff”, Find now supports keyboard input and at first, it was glitching out randomly highlighting stuff, but now it’s fixed Fixed the issue with the Game Bar background so now the Games Library area has a whole background covering up the rest of the app. Fixed an issue where the Memo and the Find Recent searches list wasn’t actually being cleared on Shutdown/Restart, it was actually not being loaded the next boot. Fixed an issue which caused the “non-existent location error” to not pop up when you entered a non-existent address in the Files app’s address bar Fixed and issue where the window contents would overflow invisibly at the bottom and cause issues with the padding and margins Current issues/bugs I only did the HTML and CSS for the upcoming features, so they don’t actually work at this point, since I didn’t do the JS part."}, {"post_id": 82079, "ts": "2026-10-23T19:37:19Z", "hours": 3.6169, "text": "Fluetro OS DevLog 062 I said I’d work slowly and post one DevLog a day, I guess one of them was a lie New stuff/changelog Removed the toggle to show them from settings and scrapped the idea Added the OS logo to the About section in Settings Added a macOS Finder-like search bar, called “Find” Added a toggle for “Find” in the quick settings Made “Find” actually work Made “Find” actually update the suggestions with the app you last opened via it at the top Made the toggle functionality stay even after a restart/shutdown using localStorage Added an option in settings to clear recent searched apps during a restart/shutdown Changed the icons in the Quick Settings panel to use images of Windows 11’s Fluent Emojis, before they used Emojis which looked good on my end, but probably won’t on Linux or macOS. And yes, the search bar has animations, but its position is fixed cuz it looks good over there Fixes Fixed an issue, where checking the option to clear memo on shutdown/restart would clear it instantly Fixed multiple issues noticed regarding “Find” during its development Changed Daily Brief to load Dynamically when the app opens, to preserve Privacy further unless someone decides to open it manually rather than it just running in the background all INVISIBLE style. Current bugs/issues “Find” can’t browse through the File system, this is intended cuz “Find” is supposed to be a launcher for your apps There’s another issue, but it is going to be an easter egg"}, {"post_id": 81842, "ts": "2026-10-22T18:10:01Z", "hours": 2.5019, "text": "Fluetro OS DevLog 061 File system complete, but still much more is left New stuff/changelog Added some sample video files (these are a surprise, I already ruined it for the images, but won’t for the videos) Added a working video player, but unfortunately, it doesn’t have a queue, so you open a video file and it plays that file Added a Pomodoro timer, based on cutepomodorotimer.com All music, images, and videos are now cloud-based, and thus will not be uploaded to the Project’s GitHub page The text at the top left now responds to the currently open and focused app Added icons for User folders Added an indicator when refreshing in the Files app Fixes Fixed an issue where the Dock would remain stretched if you closed an app while it was maximized Fixed an issue where you couldn’t name 2 different files of different types the same, so if a Folder is named “F1” you couldn’t name a file in the same directory as “F1” Fixed another issue in which naming a file the same as an app’s executable file would give it the same icon Sort option is now disabled in the Gallery and Home page of the Files app Photo viewer no longer uses random arrangement of photos, instead uses an ascending alphabetical order Current issues/bugs None encountered at this point in time"}, {"post_id": 81637, "ts": "2026-10-21T20:43:24Z", "hours": 3.0775, "text": "Fluetro OS DevLog 060 More stuff, but nothing major New stuff/changelog So, the Photo Viewer app now supports moving between images inside the same folder, and it’s like that cuz it’s inspired by Windows Photo Viewer, and yes, it also supports your keyboard’s arrow keys There’s now a Text Editor embedded inside the Files app to edit your Text Files that you create There’re now some sample images in the Images folder, and thus in the gallery Gallery elements can now be selected and have their own context menus, which is literally the same as all the preloaded folders and files Fixes The Navigation pane in the Settings app now reacts to you scrolling in the app, so it highlights the corresponding panel button Current issues/bugs The sort button in the gallery does nothing, so it’s deprecated for that area, and gallery will be arranged by order of importance"}, {"post_id": 80967, "ts": "2026-10-19T12:42:55Z", "hours": 4.0289, "text": "Fluetro OS DevLog 059 Settings app almost complete, only 2 settings left New stuff/changelog Navigation for the Settings app works now Custom accent no longer allows pure black/pure white and only allows 6-digit Hex codes All settings are now persistent throughout restarts and shutdowns Stretch dock to max width when an app is maximized works, even with multiple apps open Clear memo on Shutdown/Restart works too Added working Stardance and Github Page links to About section Show highlight for open apps option works too, so you can turn it off to get only a sleek border around the running app icon in the dock, instead of the full background The reset option works now too, and it also asks for confirmation Added tick marks to options that are turned on Added calculation logic to get the nice gradient in the lock screen according to the Custom accent too Fixes Fixed an issue where the running app highlight would appear even when the option was unchecked Fixed an issue with setting persistence which was caused due to some options being on by default Fixed an issue where the dock would get an awkward position when being stretched due to a maximized app Fixed an issue where multiple windows with some being maximized would glitch out the dock and make it toggle between its stretched and unstretched state Fixed an issue where the Window wouldn’t take up all of the screen when maximized if stretch dock option was checked Fixed an issue where the error windows would appear in the dock between Gaming Hub and Music player instead of appearing at the end of the dock Fixed the Songs in Music Player queue so they appear alphabetically Fixed an issue where you could put transparency values into hex for the accent to get a transparent color Fixed another issue with the clock Flyout which caused the Calendar to appear slightly off Fixed the issue from my previous DevLog which talked about the Lock Screen Gradient not being coded properly Current issues/bugs I haven’t implemented the Desktop icons yet, so the option in Settings remains unusable I also haven’t done the Privacy Policy or the Window for it, so that option remains unused too"}, {"post_id": 80221, "ts": "2026-10-16T19:47:20Z", "hours": 3.18, "text": "Fluetro OS DevLog 058 More settings that actually work New stuff/changelog All the settings in the Personalization area work, including custom Accent colors and custom wallpapers All the settings in the Time and Date area work (24-hr format added from feedback) Only the double-click title bar to maximize option works in the Interface section Multiple changes in HTML to accommodate the custom wallpapers and CSS designs for different areas Fixes Fixed an issue where the settings window would lag when trying to do anything with it, like resize/maximize/minimize/close etc. Fixed an issue with the margins and padding in the Clock Flyout caused by the weird CSS code that I did for the it during the initial stages since I didn’t know that much about CSS yet Current issues/bugs If you select a custom wallpaper, then switch back to a preloaded wallpaper, and then try to go back to your custom one, you’ll be prompted to choose a new one, but you can just close the window if you don’t want to choose a new one Some of the settings in the Interface and Time & Date sections aren’t retained after a Fluetro restart The gradient in the left side lock screen isn’t coded properly so a section of it uses the default colors, resulting in weird gradients according to the custom accent used, this doesn’t happen in the case of Automatic Accents though Note: The Automatic Accent system is reserved only for the preloaded wallpapers and is disabled for custom ones"}, {"post_id": 79390, "ts": "2026-10-13T19:39:21Z", "hours": 1.5175, "text": "Fluetro OS DevLog 057 Finally finished adding all the settings options New stuff added/changelog Added settings for Interface, Privacy & Security and the About sections Did the CSS for all the above-mentioned areas Made the Location bar work using JS and made it sync with the one in Quick Settings (shown in video) Fixes Fixed the weird gaps and padding in some areas of the settings app Current issues/bugs Most of the settings are not yet functional Note The Personalization area might get Radio buttons (or menus) while the other sections will get checkboxes"}, {"post_id": 78834, "ts": "2026-10-11T18:39:29Z", "hours": 1.9053, "text": "Fluetro OS DevLog 056 More Settings New Stuff added/changelog Added some more settings Did the JS for the Wallpapers so they actually work now Fixes Found an issue that causes lag and no animations when trying to open the wallpaper change menu from quick settings or the settings app, it’s now fixed, I did it by rendering the options beforehand. I tried to fix this issue thinking it was settings app-only but had to give up on it since none of my attempts to fix it worked, then I found out the same was happening in the quick settings wallpaper picker, this was probably because it goes through the code and tries to render the image using JS, and it can’t do it before the app opening animation finishes. Current issues/bugs There is no CSS for the new settings areas that have been added There’s no JS for the new settings areas that have been added Note I am thinking of making a pack that can make Windows 11 feel like Fluetro, so please let me know if anyone would like that."}, {"post_id": 78291, "ts": "2026-10-10T09:45:59Z", "hours": 2.3794, "text": "Fluetro OS DevLog 055 CSS stuff New stuff added/changelog Did the CSS for the Settings app Revamped some designs for the Gaming Hub and Settings when maximized so they don’t look weird Did a roadmap for all the settings to add Fixes Fixed some of the jumpy and jittery elements in the UI Current issues/bugs I still haven’t done anything about the JavaScript part of the Settings app so for now, everything is only visual Fun Fact The UI for this project was inspired by a leaked screenshot of a concept Windows version that surfaced online, I tried to remake that in my Windows 11 system and had a screenshot, finally found it and it’s attached below. The dock is inspired by a DeviantArt Post I saw a few years ago (I think it was called Fluent Big Sur). The top Bar UI of the OS is inspired by the new “Dock” feature added to Microsoft PowerToys and how I arranged it when I first enabled it (image attached)"}, {"post_id": 77915, "ts": "2026-10-08T19:01:41Z", "hours": 2.3003, "text": "Fluetro OS DevLog 054 Mostly improvements New stuff added Maximizing/restoring down now has animations and they don’t interfere with the resizing scenario like earlier, this took so long to implement because my first ever project that involved JavaScript was just this year, so I am still learning. Revamped the Gaming Hub Added a Settings app, and hooked it to the Quick Settings panel so it can also be opened from there Fixes For some reason the animations weren’t working for all the windows, so I checked and tried lots of different stuff, and then found out that there was no height and width parameters for most of the windows, so I added some and that fixed the animations Current bugs/issues I just started working on the Settings app, so it’s really unfinished (shown in the video)"}, {"post_id": 77783, "ts": "2026-10-08T08:24:58Z", "hours": 2.73, "text": "Fluetro OS DevLog 053 Music to my ears New stuff added Added a Music Player with working Play/Pause, seekBar, Previous/Next and Queue Added music in Audio Folder in the Files App Redid almost all the Files App icons with higher quality versions Changed the Details Pane text to a more appropriate one Added a Supabase fetch system for the Music Clicking “Previous” while being on the 1st music in the Queue results in restarting that song Clicking “Next” while being on the last music in the Queue results in restarting that song Fixes Fixed some issues with the un-resizable windows, which could be resized earlier, they just didn’t show the custom cursors Fixed jumpy windows Fixed Music Player issues that I encountered along the way, like the Play/Pause buttons not rendering properly or the SeekBar jumping Current issues/bugs The Music takes some time to load, but it mostly depends on your internet connection The Queue is still custom arranged, and not alphabetically sorted"}, {"post_id": 76238, "ts": "2026-10-02T20:12:22Z", "hours": 1.7733, "text": "Fluetro OS DevLog 052 Well, this is embarrassing New Stuff added Browser has its own custom accent color now (like how browsers on Windows have) The Photo Viewer icon stuck in the dock is now gone and appears only when Photo Viewer is called Fixes Fixed the issue with the dock padding when Photo Viewer wasn’t called Stuff that happened Tried to add a dynamic accent color sync system for the browser, it worked to some extent, but it won’t instantly sync if you changed the wallpaper to change the accent color, but would sync that accent color after a restart, so I had to remove it. Will try to implement it later though. I have been working on a Music Player app (as I said that there will be one in a future update), wasted a lot of time debugging it trying to find out why the music wasn’t playing, turns out, the Integrated Browser in VS Code doesn’t allow intregated <audio> elements. Tried in my default browser (and brave), works as intended. (Please ignore the bright blue background, it’s just a placeholder)"}, {"post_id": 75373, "ts": "2026-09-29T21:32:07Z", "hours": 1.0592, "text": "Fluetro OS DevLog 051 Lost my 25-day Streak New Stuff added Photo viewer that can open photos from the gallery and adjusts according to image size Fixes Fixed the Delete system, so now it deletes only what you want to delete, and it’s now persistent so it stays that way even after a page refresh/restart Current bugs/issues The issue with the sub-folders not opening after the parent folder is renamed still exists"}, {"post_id": 75005, "ts": "2026-09-28T20:36:29Z", "hours": 1.6364, "text": "Fluetro OS DevLog 050 Half-century DevLog? Really? New Stuff added The rename function works now Delete button kinda works Yeah that’s about it Fixes The rename function was really hard to implement, so there were lots of glitches and issues and stuff, I did manage to fix most of them, the rename box was originally meant to show over the existing file name, I did do some research to see if I could get it to work this way, but since I couldn’t get it working, I had to improvise and do the separate rename section. Tried to make the rename system be inside one single eventListener but couldn’t get it to work that way, had to create a separate function to call along with Pressing the rename and delete buttons no longer remove the selected state from the item. Current bugs/issues Clicking delete doesn’t dismiss the context menu (easy fix but it’s here because it’s just my current progress) Clicking delete for one item deletes all the items in the folder Delete is temporary and resets on refresh (for now at least) Nested Folders don’t work if you rename the parent folder (for example, in the video I rename a folder, then the folder inside it doesn’t open. This is fixed on a restart/webpage refresh)"}, {"post_id": 73741, "ts": "2026-09-25T20:19:36Z", "hours": 1.6108, "text": "Fluetro OS DevLog 049 Very little progress, since most of the time just went into debugging and fixing stuff, tried using Copilot in VS Code but it’s New stuff The context menu is finally aligned The context menu got icons now Made the delete button have a red icon and red text The open button in the context menu finally works Had to redo the file handling system so the open button system can be implemented easier Fixes Broke everything, yeah, literally the whole OS, while trying to redo the file handler because I was removing some lines (individual EventListeners) and putting them under one roof, but I forgot some brackets, since I couldn’t fix it easily, I tried to use Copilot (the one inside VS Code) to find out what’s causing the error, dude literally said that there’s an error in these lines, no elaboration or fix so I had to get the code from my backup and redo everything very carefully, so now it’s ok I have never positioned an element inside another element that can be resized, so this was new and challenging for me to align the context menu nicely with respect to the files window and its variable size system, it took some time, but I did it. Current issues/bugs Rename and Delete buttons are still to be implemented"}, {"post_id": 72767, "ts": "2026-09-23T18:21:02Z", "hours": 2.7964, "text": "Fluetro OS DevLog 048 Late DevLog, couple of improvements, mostly fixes Was supposed to upload a DevLog yesterday but had some issues with the internet (had to ditch the router), probably some coding time isn’t event logged New Features added/changelog Revamped the File Management system so now the sub directory system actually works, like you create a “New Folder” in one directory, and one in another, and now they both don’t overlap/refer to the same directory Added icons inside the Sort Menu Added a context menu for files/folders (the positioning is broken since the css isn’t done correctly, because I’ll probably be using some inspiration from Fluent New Tab for the dynamic positioning) The context menu for files/folders behaves differently according to if the Folder/File mentioned is a System one or User Created You can now un-select items by clicking somewhere else inside the app, this even updates the details pane accordingly Added custom “Date modified” parameters, so they correspond to when the file/folder was created Internal Storage now shows Size as 23.4 GB / 512 GB Removed Trash Changed the animation for the details bar (“Name | Size ….” bar) at the top to just minimize in height and not width too. Fixes As I said in changelog, the folder directories don’t overlap now I made lots of errors while trying to get this new directory system to work, like the folder numbering not working correctly, like there’s a folder: “Internal Storage\\New Folder (2)”, and then you try to go to downloads and create a folder, and then it’s named “New Folder (3)” There was also an issue where the address bar pointed to somewhere else rather than the original path for that directory (so I had to combine multiple arrays for directory system to one, which is part of the Revamped file system) Fixed a background size inconsistency in the gallery section Fixed the status bar in gallery saying “undefined items” Fixed the context menus being transparent instead of blurry (for Files and Browser), so now they’re opaque like Chrome or Edge or Safari Removed all pointer events from the details bar at the top, so it no longer shows the hand pointing cursor when hovering Current issues/bugs The file/folder context menu is positioned oddly and doesn’t have any icons The details pane icons are blurred since it uses the 32x32 icons I used in the file/folder icons"}, {"post_id": 71945, "ts": "2026-09-21T20:29:43Z", "hours": 2.5697, "text": "Fluetro OS DevLog 047 One step closer to finishing the Files app New Features added New File and New Folder options that actually work (with icons BTW) New File can only be used to create text files, and the get the Type as Text File, and a .txt extension User Created files/folders now stay even after a restart/page refresh (like in your browser, not the files or browser app of Fluetro) Removed the size detail for folders since most OSes don’t even show it Sorting actually works, but it’s only Ascending or Descending, only based off of the Item name Clicking the dock icon now instantly focus the corresponding window, except for errors Added an actually working address bar, inspired by the older Windows (like XP), which can also take user input to go to said location Putting in an invalid location in the address bar gives an error box, like the System or unsupported file type errors Fixes Fixed issues that I faced while implementing the Dynamic Naming Process for the User Created files, like adding the extension for the Text Files Fixed an issue with the sorting logic, where, since I copied most of the logic from the ascending system to the descending system, I left the button click listener for the ascending system, in the descending system, so for some time, clicking ascending just sorted the items in descending Current issues/bugs The Sort and New Menus don’t close if I click anywhere else in the files app You can’t unselect an item The Gallery Status bar shows “undefined items” Note Added the Gallery Screenshot promised in my last DevLog"}, {"post_id": 71137, "ts": "2026-09-20T10:43:54Z", "hours": 1.8961, "text": "Fluetro OS DevLog 046 Frequency of DevLogs has plummeted, but Files app is almost complete## New Features Added Preview Pane changed to Details Pane Details Pane actually works No Details Pane in Gallery .exe files open the corresponding app Added a scrollbar for the apps folder since it has way too many items Made the Files Status bar independent of the files body, so it doesn’t go away when scrolling Made the Details area on top (Name, Size etc.) independent of the files body, so they don’t go away when scrolling Added a select system which triggers the details pane Details pane won’t show up after coming back from gallery if you disabled it previously, otherwise it will Fixes Made a mess while trying to move the Status and Details areas, noticed it was because I had a part of js coded into the details area for future purposes(sorting), so I removed it and now it’s just cosmetic and does nothing else, and the status bar was appended to the main files body, which I changed to another div that contains the file operations area (New, Sort etc.), the details area and the files body Broke the details pane while trying to use querySelector to check if Gallery is active and the button is disabled or not, fixed it by switching to contains Fixed the padding and margin for the Details Pane to match the height of the Files main area Current issues/bugs I was thinking of adding Windows-style breadcrumb address bar, but that’s very problematic, and might not even suit it well, so I’ll be adding a retro-style “ \" system for the address bar There’s still no new and sort system Note I forgot to add the screenshot of gallery, and now it’s only allowing me to replace the existing files and not add more"}, {"post_id": 70266, "ts": "2026-09-18T20:45:45Z", "hours": 1.3344, "text": "Fluetro OS DevLog 045 Adding the preloaded files and folders was easy (which I did before), but now progress has been slowed, again New Features added Menus for Sorting and New File/Folder creation Different states for the New and Sort By buttons Removed Search Bar (too complicated to implement) Removed View option (still complicated to implement, might add it again later on) Removed Up one level button (most complicated) Added an error window that shows up when you try to open up a file that’s not supported by any existing app Fixes I wasted a lot of time trying to fix the issue in the css that was causing the weird position for the menus, turns out the css wasn’t the issue at all and it was actually the HTMl since I put the menus outside the upper button panel handler I also wasted a lot of time trying the hit-and-run approach for the perfect height and width for the unsupported file type error box Fixed the corner radius for the System Menu (even though barely noticeable) Current issues/bugs You can still go inside .exe files, since they’re still treated as folders (actually the type doesn’t matter for them, since the code is really simple for the folders and items) Something weird is going on with the padding for the sort and new menu buttons, and they don’t have blur either"}, {"post_id": 69786, "ts": "2026-09-17T19:49:54Z", "hours": 2.5436, "text": "Fluetro OS DevLog 044 Lot of progress New Features added An actual File System with lots of Files, including Apps and User Files Custom .igr File extension and “Integration” type for Games files Working Navigation buttons, except the “Up one level button” Double-click system for files/folders Different file/item types and different icons for each one Disabled states for navigation buttons when not available/applicable Fully redesigned “Access Denied” error box Access Denied error integration when trying to access System Files Separate dock icon with running status for the error box Connected Navigation panel to individual folders/locations Animations on the error icon on the dock when it appears and disappears Animations on dock for expanding and shrinking to make room for the error icon Fixes Minor fixes regarding the UI like hover effect for the OK button in System info box and corner radius adjustment in certain areas Fixed the weird padding at the right side of the dock due to appearance and disappearance of the error icon Current bugs/issues As I said earlier, the Up one level button doesn’t work Address bar still need a lot of work Search is still just a placeholder Preview pane is still in the works I didn’t add the sounds, and I’ll probably add them last, because being forced to hear those sounds every time I restart Fluetro for debugging will become irritating fast There’s no scroll bar in the Files App Note The animation looks jittery, but it’s due to some issue with Snipping Tool, it’s really smooth in reality"}, {"post_id": 68751, "ts": "2026-09-15T17:53:25Z", "hours": 1.6878, "text": "Fluetro OS DevLog 043 Slow and steady progress New Features added Toggleable Navigation and Preview Panes Slight Redesigns for Browser, Paint and Gaming Hub Games Minor redesigns for all tooltips Animations while enabling or disabling the Navigation and Preview panes Made iframe based windows easier to resize and move Fixes Fixed an issue where the hover of an object inside the files body would get cut off Fixed an issue where the Close button tooltip would get cut off Current issues/bugs Resizing the AI/Daily Brief app is slow and kind of jittery The items inside the files body currently do nothing There’s no active state in the Navigation pane for the folder you’re currently in"}, {"post_id": 68209, "ts": "2026-09-14T18:16:14Z", "hours": 1.7369, "text": "Fluetro OS DevLog 042 Well, at least this is better than the last time New features added Placeholder for Preview Pane Working Navigation Panel Working Gallery, currently only shows the preloaded wallpapers and I plan to add more images, maybe some taken by me A different screen for visiting empty folders Changing address bar icons according to the folder you visit Changing address bar text according to the folder you visit Added Trash (Recycle Bin), only as a Navigation Panel location for now Fixes I checked the feedback and found out Minesweeper was not working for the current version of Fluetro, so I checked and found out that vercel is case sensitive and so it didn’t work, I fixed it now Yes, I’ll be adding almost all the features from feedback like making the dock auto-hide on maximize for more usable screen real estate Fixed multiple errors that I made while trying to make this update to the Files app, mostly by missing an “=” sign or a “.” at places. These errors basically broke everything, making everything non-interactable. Current issues/bugs: IDK how I got the Details and stuff at the top to get working, but now I can’t get the content to adjust according to it, so it breaks whenever the window is maximized (screenshot attached)"}, {"post_id": 67268, "ts": "2026-09-13T10:38:04Z", "hours": 1.9453, "text": "Fluetro OS DevLog 041 Very little progress New features added Added an operations section (new, sort by and view) Added what’s supposed to be a details panel Added a status bar Added placeholder content Added the top bar for the content, with separators Current issues/bugs This is really complicated and all this time I am using up, is just for debugging, which is crazy The details pane is still blank Nothing does anything, since I have only managed to do the css and html so far"}, {"post_id": 66856, "ts": "2026-09-12T19:50:02Z", "hours": 2.5003, "text": "Fluetro OS DevLog 040 Exact reason why I delayed the development for the Files App New Features added Scrapped the plan for making the Files app iframe based Added the Files app code directly into Fluetro code for better OS integration Added Navigation pane containing all important OS locations Added a main section for the app, where the content will be shown Also fixed dark mode for the app Removed the Work in Progress window for the Files App Fixes Fixed the backgrounds for the different app elements Current issues/bugs I have been working on this for almost 2.5 hours and managed to come only this far, nothing else is done, no JavaScript, or system, only the visual app is present, and opens on clicking the files icon on the dock Should I change the icons in the Navigation panel to colorful ones?"}, {"post_id": 66078, "ts": "2026-09-11T17:22:25Z", "hours": 0.2631, "text": "Fluetro OS DevLog 039 First DevLog after 2nd ship New Features added Started working on the Files app, so now it only has a really basic design, mostly taken from the WebOS Browser project (image attached), it currently does nothing, and is just a blank slate What’s in the works? Made some sounds for the UI like Startup, login, and shutdown Got a new roadmap and a whole list of features to add next"}, {"post_id": 65544, "ts": "2026-09-10T19:07:37Z", "hours": 0.2592, "text": "Fluetro OS DevLog 038 Did some last-minute changes New Features added Now you can actually see what wallpaper you have selected The Calculator now follows the accent colors for more buttons Note for reviewers Some browsers may currently display phishing or scam warnings when accessing my GitHub Pages websites. These appear to be false positives. My projects are designed with a privacy-focused approach and do not intentionally collect sensitive user information. I have already reported the issue and am currently waiting for the warnings to be reviewed and resolved."}, {"post_id": 65493, "ts": "2026-09-10T17:48:19Z", "hours": 0.7078, "text": "Fluetro OS DevLog 037 Final DevLog before 2nd Ship New Features added New favicon Automatic Accent colors for the 4 preloaded wallpapers The accent colors not only affect the active toggles, but also affect the TopBar/System Menu Logo, the seconds hand of the clock, the today indicator of the calendar, the separators in the dock and the Welcome/Lock Screen too New spinning design for the Signing out/shutting down/restarting screens Fixed the default window sizing for the browser Removed the “…” from the above-mentioned screens There’s also an accent2 for the gradient design, and it will be customizable in later versions Removed a really light color that was present at 50% Fixes The lock screen gradient is now smoother, and the text is easier to read due the color removal. Fixed the tooltip artifact issue from my Last DevLog Current issues/bugs Opening Files no longer shows Work in Progress but shows “This Location is System Protected”, this was due to me making an error screen for situations where the user tries to access stuff in the OS that they’re not supposed to. But since it’s already there, it stays. It will be fixed in a later release. What’s next? Ship #2"}, {"post_id": 65463, "ts": "2026-09-10T16:38:29Z", "hours": 1.4742, "text": "Fluetro OS DevLog 036 Redesigns, features, and animations New Features added Minimized and open running states for the dock icon, inspired by Windows 11 Redesigned the logo again, and made it perfect this time Redesigned running design for dock icons along with a custom hover design for that state. Redesigned Boot Screen inspired by macOS and Windows 7 Redesigned System information window Animations for the different app states in the dock A restart function that shuts down and reloads the page Redesigned Dark Mode Redesigned accent color Fixes Fixed an issue where Signing out won’t close any open apps Fixed an issue where the running states would be jumping around when switching (made this issue while trying to add the different states) Current issues/bugs There is an issue with tooltips where a line with the tooltip color appears and stays until another tooltip appears What’s next? I’ll probably be implementing an automatic accent color system for the present 4 wallpapers before the second ship. What the 3rd ship will include will be included in the README."}, {"post_id": 64964, "ts": "2026-09-09T18:20:34Z", "hours": 1.5181, "text": "Fluetro OS DevLog 035 Redesign and more stuff New Features added Boot Screen Redesigned logo and Lock screen inspired by the default wallpaper Transitions and Animations for Boot Screen No pointer in Boot Screen Fixes Fixed an issue where Escape and Function Keys won’t work, this was due to a misplaced exclamation mark 😐 Fixed the lock screen animations which I broke while trying to add the Boot Screen Current issues/bugs There’s something wrong with the Sign Out option, since it’s keeping the apps open when signed out What’s Next? I’ll probably be adding a restart option, and then do a 2nd ship, there’ll also be a 3rd ship with the Files App, which is possibly the hardest thing to do (at least for me) in this project."}, {"post_id": 64427, "ts": "2026-09-08T19:56:33Z", "hours": 0.4503, "text": "Fluetro OS DevLog 034 Some changes New Features added Added icons to the System Menu Full logo redesign Finished on a new color scheme Animation when hovering on or pressing the Continue button on Welcome screen Fixes Fixed the animation system for the Continue button on the Welcome Screen Finalized the new color scheme Current bugs/issues I still don’t know if this color scheme is better than the original one(1st image)"}, {"post_id": 64403, "ts": "2026-09-08T19:09:41Z", "hours": 0.9294, "text": "Fluetro OS DevLog 033 Some redesigns New Features added Better logo design Fixes Fixed an issue where the running state of the app won’t show but instead make the tooltips of that app have its color. Current issues/bugs This is an issue, I am thinking of giving the OS a better and more premium color identity, should I stick with the old color design or the new one, or if someone could provide any new suggestions, that would be nice too."}, {"post_id": 63479, "ts": "2026-09-07T11:13:23Z", "hours": 0.6122, "text": "Fluetro OS DevLog 032 Huge addition New Features added Browser is no longer a Work in Progress Fixes Spent a lot of time trying to figure out how to send the theme from the OS to the Browser, since earlier that part of the code was handled inside the Gaming Hub code. So yeah, that’s just about what I did for the latest logged time"}, {"post_id": 63078, "ts": "2026-09-06T17:50:18Z", "hours": 1.0811, "text": "Fluetro OS DevLog 031 More icons and some small additions New Features added Added arrows for the buttons for changing Calendar Month in the Time & Date flyout Added tooltips for all the buttons in the TopBar that can open flyouts Themed the tooltips Made the topbar tooltips not open if a flyout is open Added tooltips to dock icons Fixes Fixed the gap and alignment of the buttons used to change months in the calendar Fixed the weird pill-shaped today indicator in the calendar flyout Fixed positioning issues with the tooltips Fixed the issue of the System Menu not having any background blur Current issues/bugs Have added too much animations/fancy stuff/polish instead of adding actual features Next target The Fluetro Browser"}, {"post_id": 62987, "ts": "2026-09-06T15:37:52Z", "hours": 0.4775, "text": "Fluetro OS DevLog 030 More icons New features added Replaced the icon for the Continue button at the login screen Replaced the icon for the exit game button in Gaming Hub Added animations to the exit game button Overhauled the calculator with icons Fixes Fixed the dark mode color for the percentage operator, it became invisible during dark mode Made the exit game button in Gaming Hub show up only when a game is running Fixed the AC button being too bold Current issues/bugs Need to add more icons for the Weather flyout"}, {"post_id": 62956, "ts": "2026-09-06T14:51:43Z", "hours": 0.4186, "text": "Fluetro OS DevLog 029 More icons and more fixes New features added Redid the Weather flyout with the new icons Fixes Wasted a lot of time trying to rotate the icon for the refresh button, then I realized that something called “rotate” exists for html, but then the icon was off-center so I had to go through a bunch of margin length and stuff just to get it to be centered Fixed the issue of the Calculator taking input when not focused Current issues/bugs There are many more buttons left where I need to add icons, and many more that need changing Will add the browser as soon as my work on WebOS Browser is completed, meanwhile I am working on a file structure for the Files app."}, {"post_id": 62937, "ts": "2026-09-06T14:13:14Z", "hours": 0.7372, "text": "Fluetro OS DevLog 028 I’m back to Fluetro OS after working on Fluent New Tab for some time, I’ll also be working on my WebOS Browser project alongside this. New Features added Didn’t do anything much, just learned about Lucide Replaced all window control icons Replaced the Quick Settings icon Added Keyboard input to the calculator Fixes Fixed the “%” button in the calculator having the wrong color Current issues/bugs The keyboard takes input unless you are typing anywhere else"}, {"post_id": 58204, "ts": "2026-08-30T15:45:07Z", "hours": 0.6964, "text": "Fluetro OS DevLog 027 •OK, so I’m back to Fluetro OS after working on some other projects like Fluent 2048 and Fluent Minesweeper (which I did because working on games inside the code of Fluetro was problematic due to having so much code for the OS itself) •As I said I did make those games for this and will be adding those here, so I did. •So now there’s a total of 5 simple and easily recognizable games in Gaming Hub. •I am thinking of doing a 2nd ship of this today, but should I? I did add 3 features and plan on adding more later. •The Fluent 2048 and Minesweeper games are a different version of what I’ve uploaded as separate projects, so they might look “a bit” different."}, {"post_id": 55114, "ts": "2026-08-26T16:01:31Z", "hours": 0.6219, "text": "Fluetro OS DevLog 026 •Added the custom version of Fluent Minesweeper •Added an animation while changing from Dark Mode to Light Mode and vice-versa •Working on a new logo for the OS •Working on more custom games and features"}, {"post_id": 54494, "ts": "2026-08-25T14:47:09Z", "hours": 0.9369, "text": "Fluetro OS DevLog 025 •Added a Last Played section to Gaming Hub showing the game last played by the user •Added the “My Games” heading •Edited the Work in Progress Windows to behave differently (for a future purpose)"}, {"post_id": 54418, "ts": "2026-08-25T12:52:02Z", "hours": 0.6103, "text": "Fluetro OS DevLog 024 •Added Chrome Dino as a game •Added Surf (from MS Edge) as a game •Fixed an issue where the bottom of the window would not be visible (especially Minecraft Classic) •Fixed multiple UI issues and bugs in Gaming Hub •Added icons for all the games and Gaming Hub"}, {"post_id": 54374, "ts": "2026-08-25T10:47:47Z", "hours": 1.3764, "text": "Fluetro OS DevLog 023 •Scrapped the previous games because those websites refused to work with iframe •Added Minesweeper instead of GTA: Vice City •Added Minecraft Classic •Added Separators in the Dock (forgot to mention in previous DevLog) •Added an issue where the top has a lot of extra padding •Thinking of taking another break to create my own Minesweeper and other games/apps to add here"}, {"post_id": 54334, "ts": "2026-08-25T09:11:48Z", "hours": 0.7736, "text": "Fluetro OS DevLog 022 •Added Dock and Title Bar icons for Daily Brief •Made Memo resizable and have maximize/restore down functions •Added a Gaming Hub for games to be added"}, {"post_id": 54290, "ts": "2026-08-25T07:25:05Z", "hours": 0.4281, "text": "Fluetro OS DevLog 021 First DevLog for WebOS 2 project •Added an AI Brief app using iframe (app created by one of my friends) •This app uses an approximate in-browser location from your IP, so the Weather in my topBar is different than what’s shown here."}, {"post_id": 54077, "ts": "2026-08-24T21:04:58Z", "hours": 1.9297, "text": "Fluetro OS DevLog 020 This might be my last DevLog to this project before uploading this to GitHub and Shipping •Added a new Logo, with a stylized F •Added actual icons to the Dock and Title Bar •Replaced the settings icon placeholder emoji with an actual icon •Turned Memo into an actual Memo, so it’s not resizable and doesn’t have Maximize/Restore Down buttons •Added some more text to the System Info box"}, {"post_id": 53954, "ts": "2026-08-24T17:42:33Z", "hours": 1.6442, "text": "Fluetro OS DevLog 019 •Added Nicer animations to Flyouts •Added a separate menu for Sign out and Shut down at OS logo on TopBar •Moved System Info to OS Name text on TopBar •Tried to add Window Maximize/Restore Down animations but messed it up •Added a transition while changing wallpapers •Fixed the issue where a window would jump to the left while resizing/dragging"}, {"post_id": 53862, "ts": "2026-08-24T15:48:40Z", "hours": 0.8386, "text": "Fluetro OS DevLog 018 •Added a Weather Section in Settings •Added the option to change the weather by adding your own location yourself (so no location tracking involved) •Found out that JSPaint (the paint app integration) has multiple themes including Modern ones"}, {"post_id": 53338, "ts": "2026-08-23T20:30:52Z", "hours": 2.0442, "text": "Fluetro OS DevLog 017 •Added working weather using Open Meteo API (currently fixed to Los Angeles only) •Added working weather to Top Bar •Added a Signing Out screen •Added animations to the Signing out and Shutting down screens •Added animations while Logging in"}, {"post_id": 53253, "ts": "2026-08-23T18:10:22Z", "hours": 1.3803, "text": "Fluetro OS DevLog 016 •Added Calculator •Added Paint (JS Paint Integration via iframe) •Made sure the calculator cannot be resized or maximized, so it’s a fixed size."}, {"post_id": 52973, "ts": "2026-08-23T10:55:55Z", "hours": 1.4153, "text": "Fluetro OS DevLog 015 •Added “Work in Progress” placeholders for apps that will be added in a future update (WebOS 2). •Added a working Memo that stores text in localStorage, thus making the text Persistent. •Added running indicators for apps that are open/minimized. •Fixed the title bar padding."}, {"post_id": 52919, "ts": "2026-08-23T09:20:40Z", "hours": 1.4139, "text": "Fluetro OS DevLog 014 •I’m back to working on Fluetro OS again •Added active states to buttons •Made the Weather button work •Added working Weather Flyout •Added animations to the Weather Flyout •Added bunch of placeholder text for the weather"}, {"post_id": 51108, "ts": "2026-08-20T16:35:55Z", "hours": 1.6989, "text": "Fluetro OS Devlog 013 •Added Animations and Transitions to Logon Screen. •Added Animations and Transitions to all the Flyouts. •Added Hover Effects to OS Name button on TopBar. •Tried to add a Logon Screen to Desktop Transition but failed."}, {"post_id": 50908, "ts": "2026-08-20T11:41:57Z", "hours": 0.5647, "text": "Fluetro OS Devlog 012 •Fixed the Clock Flyout •Gave the Clock Flyout a redesign. •Added working Weather to TopBar. •Fixed the problem of UI elements/text being selected while clicking and dragging."}, {"post_id": 50881, "ts": "2026-08-20T10:40:20Z", "hours": 0.57, "text": "Fluetro OS Devlog 011 •Managed to kind of fix the Clock Flyout. •Added Dark Mode to the Clock Flyout. •Added Hover effects to the clock in the topBar."}, {"post_id": 50858, "ts": "2026-08-20T09:30:34Z", "hours": 1.1558, "text": "Fluetro OS Devlog 010 •Added a Expandable Clock Section to the TopBar clock (currently kind of broken). •Added Hover to TopBar weather section."}, {"post_id": 50823, "ts": "2026-08-20T08:04:49Z", "hours": 0.6014, "text": "Fluetro OS Devlog 009 •Added Resizable Windows. •Added Draggable Windows. •Added Animations to the Dock."}, {"post_id": 50813, "ts": "2026-08-20T07:16:04Z", "hours": 1.2939, "text": "Fluetro OS Devlog 008 •Broke the Window Controls but managed to fix them. •Fixed Padding for the Dock. •Made sure maximized windows don’t overlap the Top Bar or Dock."}, {"post_id": 50794, "ts": "2026-08-20T05:50:00Z", "hours": 0.9014, "text": "Fluetro OS Devlog 007 •Added Focused and Unfocused states to the Windows. •Fixed the Corner Radius for many UI elements. •Fixed Title bar height. •Made the Windows draggable using the Title Bar."}, {"post_id": 50619, "ts": "2026-08-19T20:58:07Z", "hours": 1.4964, "text": "Fluetro OS Devlog 006 •Added a Working Window •Fixed the TopBar Clock •Added a working Shutdown Sequence •Added System Info (basic and needs more work)"}, {"post_id": 50554, "ts": "2026-08-19T19:17:37Z", "hours": 1.3172, "text": "Fluetro OS Devlog 005 •Added working Dark Mode and Wallpaper Picker. •Added working Sign Out and Shut down options. •Introduced more bugs and issues to fix."}, {"post_id": 50506, "ts": "2026-08-19T17:55:21Z", "hours": 1.7083, "text": "Fluetro OS Devlog 004 •Started from Scratch •Working on giving this a MacOS+Windows+OneUI esque feel •Finished the Welcome Screen •Partial Success regarding the Top Bar, Dock and Apps"}, {"post_id": 49717, "ts": "2026-08-18T17:05:34Z", "hours": 0.5936, "text": "Fluetro OS devlog 003 •Added actual Photo Wallpapers (from Unsplash). •Fixed the issues with some of the app icons. •Updated the System Info."}, {"post_id": 49694, "ts": "2026-08-18T16:16:29Z", "hours": 1.2136, "text": "Fleutro OS Devlog 002. •Added a Shutdown sequence. •Managed to fix the small UI issues and bugs. •Added a Sign out and Shutdown option inside the OS Menu. •Added working System info and Power off button to the Lock Screen. •Added some more apps in the Store •Added indicators for Minimized apps"}, {"post_id": 49102, "ts": "2026-08-17T18:41:47Z", "hours": 0.9647, "text": "Managed to make a lot of Progress, right now the Logon screen and the desktop work with all the apps being functional. Am working on getting a working version of the Start Screen-like Interface."}]...
|
Title: Fluetro OS by @TonyStark965 | Stardance
De Title: Fluetro OS by @TonyStark965 | Stardance
Devlogs:
Managed to make a lot of Progress, right now the Logon screen and the desktop work with all the apps being functional. Am working on getting a working version of the Start Screen-like Interface.
Fleutro OS Devlog 002. •Added a Shutdown sequence. •Managed to fix the small UI issues and bugs. •Added a Sign out and Shutdown option inside the OS Menu. •Added working System info and Power off button to the Lock Screen. •Added some more apps in the Store •Added indicators for Minimized apps
Fluetro OS devlog 003 •Added actual Photo Wallpapers (from Unsplash). •Fixed the issues with some of the app icons. •Updated the System Info.
Fluetro OS Devlog 004 •Started from Scratch •Working on giving this a MacOS+Windows+OneUI esque feel •Finished the Welcome Screen •Partial Success regarding the Top Bar, Dock and Apps
Fluetro OS Devlog 005 •Added working Dark Mode and Wallpaper Picker. •Added working Sign Out and Shut down options. •Introduced more bugs and issues to fix.
Fluetro OS Devlog 006 •Added a Working Window •Fixed the TopBar Clock •Added a working Shutdown Sequence •Added System Info (basic and needs more work)
Fluetro OS Devlog 007 •Added Focused and Unfocused states to the Windows. •Fixed the Corner Radius for many UI elements. •Fixed Title bar height. •Made the Windows draggable using the Title Bar.
Fluetro OS Devlog 008 •Broke the Window Controls but managed to fix them. •Fixed Padding for the Dock. •Made sure maximized windows don’t overlap the Top Bar or Dock.
Fluetro OS Devlog 009 •Added Resizable Windows. •Added Draggable Windows. •Added Animations to the Dock.
Fluetro OS Devlog 010 •Added a Expandable Clock Section to the TopBar clock (currently kind of broken). •Added Hover to TopBar weather section.
Fluetro OS Devlog 011 •Managed to kind of fix the Clock Flyout. •Added Dark Mode to the Clock Flyout. •Added Hover effects to the clock in the topBar.
Fluetro OS Devlog 012 •Fixed the Clock Flyout •Gave the Clock Flyout a redesign. •Added working Weather to TopBar. •Fixed the problem of UI elements/text being selected while clicking and dragging.
Fluetro OS Devlog 013 •Added Animations and Transitions to Logon Screen. •Added Animations and Transitions to all the Flyouts. •Added Hover Effects to OS Name button on TopBar. •Tried to add a Logon Screen to Desktop Transition but failed.
Fluetro OS DevLog 014 •I’m back to working on Fluetro OS again •Added active states to buttons •Made the Weather button work •Added working Weather Flyout •Added animations to the Weather Flyout •Added bunch of placeholder text for the weather
Fluetro OS DevLog 015 •Added “Work in Progress” placeholders for apps that will be added in a future update (WebOS 2). •Added a working Memo that stores text in localStorage, thus making the text Persistent. •Added running indicators for apps that are open/minimized. •Fixed the title bar padding.
Fluetro OS DevLog 016 •Added Calculator •Added Paint (JS Paint Integration via iframe) •Made sure the calculator cannot be resized or maximized, so it’s a fixed size.
Fluetro OS DevLog 017 •Added working weather using Open Meteo API (currently fixed to Los Angeles only) •Added working weather to Top Bar •Added a Signing Out screen •Added animations to the Signing out and Shutting down screens •Added animations while Logging in
Fluetro OS DevLog 018 •Added a Weather Section in Settings •Added the option to change the weather by adding your own location yourself (so no location tracking involved) •Found out that JSPaint (the paint app integration) has multiple themes including Modern ones
Fluetro OS DevLog 019 •Added Nicer animations to Flyouts •Added a separate menu for Sign out and Shut down at OS logo on TopBar •Moved System Info to OS Name text on TopBar •Tried to add Window Maximize/Restore Down animations but messed it up •Added a transition while changing wallpapers •Fixed the issue where a window would jump to the left while resizing/dragging
Fluetro OS DevLog 020 This might be my last DevLog to this project before uploading this to GitHub and Shipping •Added a new Logo, with a stylized F •Added actual icons to the Dock and Title Bar •Replaced the settings icon placeholder emoji with an actual icon •Turned Memo into an actual Memo, so it’s not resizable and doesn’t have Maximize/Restore Down buttons •Added some more text to the System Info box
Fluetro OS DevLog 021 First DevLog for WebOS 2 project •Added an AI Brief app using iframe (app created by one of my friends) •This app uses an approximate in-browser location from your IP, so the Weather in my topBar is different than what’s shown here.
Fluetro OS DevLog 022 •Added Dock and Title Bar icons for Daily Brief •Made Memo resizable and have maximize/restore down functions •Added a Gaming Hub for games to be added
Fluetro OS DevLog 023 •Scrapped the previous games because those websites refused to work with iframe •Added Minesweeper instead of GTA: Vice City •Added Minecraft Classic •Added Separators in the Dock (forgot to mention in previous DevLog) •Added an issue where the top has a lot of extra padding •Thinking of taking another break to create my own Minesweeper and other games/apps to add here
Fluetro OS DevLog 024 •Added Chrome Dino as a game •Added Surf (from MS Edge) as a game •Fixed an issue where the bottom of the window would not be visible (especially Minecraft Classic) •Fixed multiple UI issues and bugs in Gaming Hub •Added icons for all the games and Gaming Hub
Fluetro OS DevLog 025 •Added a Last Played section to Gaming Hub showing the game last played by the user •Added the “My Games” heading •Edited the Work in Progress Windows to behave differently (for a future purpose)
Fluetro OS DevLog 026 •Added the custom version of Fluent Minesweeper •Added an animation while changing from Dark Mode to Light Mode and vice-versa •Working on a new logo for the OS •Working on more custom games and features
Fluetro OS DevLog 027 •OK, so I’m back to Fluetro OS after working on some other projects like Fluent 2048 and Fluent Minesweeper (which I did because working on games inside the code of Fluetro was problematic due to having so much code for the OS itself) •As I said I did make those games for this and will be adding those here, so I did. •So now there’s a total of 5 simple and easily recognizable games in Gaming Hub. •I am thinking of doing a 2nd ship of this today, but should I? I did add 3 features and plan on adding more later. •The Fluent 2048 and Minesweeper games are a different version of what I’ve uploaded as separate projects, so they might look “a bit” different.
Fluetro OS DevLog 028 I’m back to Fluetro OS after working on Fluent New Tab for some time, I’ll also be working on my WebOS Browser project alongside this. New Features added Didn’t do anything much, just learned about Lucide Replaced all window control icons Replaced the Quick Settings icon Added Keyboard input to the calculator Fixes Fixed the “%” button in the calculator having the wrong color Current issues/bugs The keyboard takes input unless you are typing anywhere else
Fluetro OS DevLog 029 More icons and more fixes New features added Redid the Weather flyout with the new icons Fixes Wasted a lot of time trying to rotate the icon for the refresh button, then I realized that something called “rotate” exists for html, but then the icon was off-center so I had to go through a bunch of margin length and stuff just to get it to be centered Fixed the issue of the Calculator taking input when not focused Current issues/bugs There are many more buttons left where I need to add icons, and many more that need changing Will add the browser as soon as my work on WebOS Browser is completed, meanwhile I am working on a file structure for the Files app.
Fluetro OS DevLog 030 More icons New features added Replaced the icon for the Continue button at the login screen Replaced the icon for the exit game button in Gaming Hub Added animations to the exit game button Overhauled the calculator with icons Fixes Fixed the dark mode color for the percentage operator, it became invisible during dark mode Made the exit game button in Gaming Hub show up only when a game is running Fixed the AC button being too bold Current issues/bugs Need to add more icons for the Weather flyout
Fluetro OS DevLog 031 More icons and some small additions New Features added Added arrows for the buttons for changing Calendar Month in the Time & Date flyout Added tooltips for all the buttons in the TopBar that can open flyouts Themed the tooltips Made the topbar tooltips not open if a flyout is open Added tooltips to dock icons Fixes Fixed the gap and alignment of the buttons used to change months in the calendar Fixed the weird pill-shaped today indicator in the calendar flyout Fixed positioning issues with the tooltips Fixed the issue of the System Menu not having any background blur Current issues/bugs Have added too much animations/fancy stuff/polish instead of adding actual features Next target The Fluetro Browser
Fluetro OS DevLog 032 Huge addition New Features added Browser is no longer a Work in Progress Fixes Spent a lot of time trying to figure out how to send the theme from the OS to the Browser, since earlier that part of the code was handled inside the Gaming Hub code. So yeah, that’s just about what I did for the latest logged time
Fluetro OS DevLog 033 Some redesigns New Features added Better logo design Fixes Fixed an issue where the running state of the app won’t show but instead make the tooltips of that app have its color. Current issues/bugs This is an issue, I am thinking of giving the OS a better and more premium color identity, should I stick with the old color design or the new one, or if someone could provide any new suggestions, that would be nice too.
Fluetro OS DevLog 034 Some changes New Features added Added icons to the System Menu Full logo redesign Finished on a new color scheme Animation when hovering on or pressing the Continue button on Welcome screen Fixes Fixed the animation system for the Continue button on the Welcome Screen Finalized the new color scheme Current bugs/issues I still don’t know if this color scheme is better than the original one(1st image)
Fluetro OS DevLog 035 Redesign and more stuff New Features added Boot Screen Redesigned logo and Lock screen inspired by the default wallpaper Transitions and Animations for Boot Screen No pointer in Boot Screen Fixes Fixed an issue where Escape and Function Keys won’t work, this was due to a misplaced exclamation mark 😐 Fixed the lock screen animations which I broke while trying to add the Boot Screen Current issues/bugs There’s something wrong with the Sign Out option, since it’s keeping the apps open when signed out What’s Next? I’ll probably be adding a restart option, and then do a 2nd ship, there’ll also be a 3rd ship with the Files App, which is possibly the hardest thing to do (at least for me) in this project.
Fluetro OS DevLog 036 Redesigns, features, and animations New Features added Minimized and open running states for the dock icon, inspired by Windows 11 Redesigned the logo again, and made it perfect this time Redesigned running design for dock icons along with a custom hover design for that state. Redesigned Boot Screen inspired by macOS and Windows 7 Redesigned System information window Animations for the different app states in the dock A restart function that shuts down and reloads the page Redesigned Dark Mode Redesigned accent color Fixes Fixed an issue where Signing out won’t close any open apps Fixed an issue where the running states would be jumping around when switching (made this issue while trying to add the different states) Current issues/bugs There is an issue with tooltips where a line with the tooltip color appears and stays until another tooltip appears What’s next? I’ll probably be implementing an automatic accent color system for the present 4 wallpapers before the second ship. What the 3rd ship will include will be included in the README.
Fluetro OS DevLog 037 Final DevLog before 2nd Ship New Features added New favicon Automatic Accent colors for the 4 preloaded wallpapers The accent colors not only affect the active toggles, but also affect the TopBar/System Menu Logo, the seconds hand of the clock, the today indicator of the calendar, the separators in the dock and the Welcome/Lock Screen too New spinning design for the Signing out/shutting down/restarting screens Fixed the default window sizing for the browser Removed the “…” from the above-mentioned screens There’s also an accent2 for the gradient design, and it will be customizable in later versions Removed a really light color that was present at 50% Fixes The lock screen gradient is now smoother, and the text is easier to read due the color removal. Fixed the tooltip artifact issue from my Last DevLog Current issues/bugs Opening Files no longer shows Work in Progress but shows “This Location is System Protected”, this was due to me making an error screen for situations where the user tries to access stuff in the OS that they’re not supposed to. But since it’s already there, it stays. It will be fixed in a later release. What’s next? Ship #2
Fluetro OS DevLog 038 Did some last-minute changes New Features added Now you can actually see what wallpaper you have selected The Calculator now follows the accent colors for more buttons Note for reviewers Some browsers may currently display phishing or scam warnings when accessing my GitHub Pages websites. These appear to be false positives. My projects are designed with a privacy-focused approach and do not intentionally collect sensitive user information. I have already reported the issue and am currently waiting for the warnings to be reviewed and resolved.
Fluetro OS DevLog 039 First DevLog after 2nd ship New Features added Started working on the Files app, so now it only has a really basic design, mostly taken from the WebOS Browser project (image attached), it currently does nothing, and is just a blank slate What’s in the works? Made some sounds for the UI like Startup, login, and shutdown Got a new roadmap and a whole list of features to add next
Fluetro OS DevLog 040 Exact reason why I delayed the development for the Files App New Features added Scrapped the plan for making the Files app iframe based Added the Files app code directly into Fluetro code for better OS integration Added Navigation pane containing all important OS locations Added a main section for the app, where the content will be shown Also fixed dark mode for the app Removed the Work in Progress window for the Files App Fixes Fixed the backgrounds for the different app elements Current issues/bugs I have been working on this for almost 2.5 hours and managed to come only this far, nothing else is done, no JavaScript, or system, only the visual app is present, and opens on clicking the files icon on the dock Should I change the icons in the Navigation panel to colorful ones?
Fluetro OS DevLog 041 Very little progress New features added Added an operations section (new, sort by and view) Added what’s supposed to be a details panel Added a status bar Added placeholder content Added the top bar for the content, with separators Current issues/bugs This is really complicated and all this time I am using up, is just for debugging, which is crazy The details pane is still blank Nothing does anything, since I have only managed to do the css and html so far
Fluetro OS DevLog 042 Well, at least this is better than the last time New features added Placeholder for Preview Pane Working Navigation Panel Working Gallery, currently only shows the preloaded wallpapers and I plan to add more images, maybe some taken by me A different screen for visiting empty folders Changing address bar icons according to the folder you visit Changing address bar text according to the folder you visit Added Trash (Recycle Bin), only as a Navigation Panel location for now Fixes I checked the feedback and found out Minesweeper was not working for the current version of Fluetro, so I checked and found out that vercel is case sensitive and so it didn’t work, I fixed it now Yes, I’ll be adding almost all the features from feedback like making the dock auto-hide on maximize for more usable screen real estate Fixed multiple errors that I made while trying to make this update to the Files app, mostly by missing an “=” sign or a “.” at places. These errors basically broke everything, making everything non-interactable. Current issues/bugs: IDK how I got the Details and stuff at the top to get working, but now I can’t get the content to adjust according to it, so it breaks whenever the window is maximized (screenshot attached)
Fluetro OS DevLog 043 Slow and steady progress New Features added Toggleable Navigation and Preview Panes Slight Redesigns for Browser, Paint and Gaming Hub Games Minor redesigns for all tooltips Animations while enabling or disabling the Navigation and Preview panes Made iframe based windows easier to resize and move Fixes Fixed an issue where the hover of an object inside the files body would get cut off Fixed an issue where the Close button tooltip would get cut off Current issues/bugs Resizing the AI/Daily Brief app is slow and kind of jittery The items inside the files body currently do nothing There’s no active state in the Navigation pane for the folder you’re currently in
Fluetro OS DevLog 044 Lot of progress New Features added An actual File System with lots of Files, including Apps and User Files Custom .igr File extension and “Integration” type for Games files Working Navigation buttons, except the “Up one level button” Double-click system for files/folders Different file/item types and different icons for each one Disabled states for navigation buttons when not available/applicable Fully redesigned “Access Denied” error box Access Denied error integration when trying to access System Files Separate dock icon with running status for the error box Connected Navigation panel to individual folders/locations Animations on the error icon on the dock when it appears and disappears Animations on dock for expanding and shrinking to make room for the error icon Fixes Minor fixes regarding the UI like hover effect for the OK button in System info box and corner radius adjustment in certain areas Fixed the weird padding at the right side of the dock due to appearance and disappearance of the error icon Current bugs/issues As I said earlier, the Up one level button doesn’t work Address bar still need a lot of work Search is still just a placeholder Preview pane is still in the works I didn’t add the sounds, and I’ll probably add them last, because being forced to hear those sounds every time I restart Fluetro for debugging will become irritating fast There’s no scroll bar in the Files App Note The animation looks jittery, but it’s due to some issue with Snipping Tool, it’s really smooth in reality
Fluetro OS DevLog 045 Adding the preloaded files and folders was easy (which I did before), but now progress has been slowed, again New Features added Menus for Sorting and New File/Folder creation Different states for the New and Sort By buttons Removed Search Bar (too complicated to implement) Removed View option (still complicated to implement, might add it again later on) Removed Up one level button (most complicated) Added an error window that shows up when you try to open up a file that’s not supported by any existing app Fixes I wasted a lot of time trying to fix the issue in the css that was causing the weird position for the menus, turns out the css wasn’t the issue at all and it was actually the HTMl since I put the menus outside the upper button panel handler I also wasted a lot of time trying the hit-and-run approach for the perfect height and width for the unsupported file type error box Fixed the corner radius for the System Menu (even though barely noticeable) Current issues/bugs You can still go inside .exe files, since they’re still treated as folders (actually the type doesn’t matter for them, since the code is really simple for the folders and items) Something weird is going on with the padding for the sort and new menu buttons, and they don’t have blur either
Fluetro OS DevLog 046 Frequency of DevLogs has plummeted, but Files app is almost complete## New Features Added Preview Pane changed to Details Pane Details Pane actually works No Details Pane in Gallery .exe files open the corresponding app Added a scrollbar for the apps folder since it has way too many items Made the Files Status bar independent of the files body, so it doesn’t go away when scrolling Made the Details area on top (Name, Size etc.) independent of the files body, so they don’t go away when scrolling Added a select system which triggers the details pane Details pane won’t show up after coming back from gallery if you disabled it previously, otherwise it will Fixes Made a mess while trying to move the Status and Details areas, noticed it was because I had a part of js coded into the details area for future purposes(sorting), so I removed it and now it’s just cosmetic and does nothing else, and the status bar was appended to the main files body, which I changed to another div that contains the file operations area (New, Sort etc.), the details area and the files body Broke the details pane while trying to use querySelector to check if Gallery is active and the button is disabled or not, fixed it by switching to contains Fixed the padding and margin for the Details Pane to match the height of the Files main area Current issues/bugs I was thinking of adding Windows-style breadcrumb address bar, but that’s very problematic, and might not even suit it well, so I’ll be adding a retro-style “ " system for the address bar There’s still no new and sort system Note I forgot to add the screenshot of gallery, and now it’s only allowing me to replace the existing files and not add more
Fluetro OS DevLog 047 One step closer to finishing the Files app New Features added New File and New Folder options that actually work (with icons BTW) New File can only be used to create text files, and the get the Type as Text File, and a .txt extension User Created files/folders now stay even after a restart/page refresh (like in your browser, not the files or browser app of Fluetro) Removed the size detail for folders since most OSes don’t even show it Sorting actually works, but it’s only Ascending or Descending, only based off of the Item name Clicking the dock icon now instantly focus the corresponding window, except for errors Added an actually working address bar, inspired by the older Windows (like XP), which can also take user input to go to said location Putting in an invalid location in the address bar gives an error box, like the System or unsupported file type errors Fixes Fixed issues that I faced while implementing the Dynamic Naming Process for the User Created files, like adding the extension for the Text Files Fixed an issue with the sorting logic, where, since I copied most of the logic from the ascending system to the descending system, I left the button click listener for the ascending system, in the descending system, so for some time, clicking ascending just sorted the items in descending Current issues/bugs The Sort and New Menus don’t close if I click anywhere else in the files app You can’t unselect an item The Gallery Status bar shows “undefined items” Note Added the Gallery Screenshot promised in my last DevLog
Fluetro OS DevLog 048 Late DevLog, couple of improvements, mostly fixes Was supposed to upload a DevLog yesterday but had some issues with the internet (had to ditch the router), probably some coding time isn’t event logged New Features added/changelog Revamped the File Management system so now the sub directory system actually works, like you create a “New Folder” in one directory, and one in another, and now they both don’t overlap/refer to the same directory Added icons inside the Sort Menu Added a context menu for files/folders (the positioning is broken since the css isn’t done correctly, because I’ll probably be using some inspiration from Fluent New Tab for the dynamic positioning) The context menu for files/folders behaves differently according to if the Folder/File mentioned is a System one or User Created You can now un-select items by clicking somewhere else inside the app, this even updates the details pane accordingly Added custom “Date modified” parameters, so they correspond to when the file/folder was created Internal Storage now shows Size as 23.4 GB / 512 GB Removed Trash Changed the animation for the details bar (“Name | Size ….” bar) at the top to just minimize in height and not width too. Fixes As I said in changelog, the folder directories don’t overlap now I made lots of errors while trying to get this new directory system to work, like the folder numbering not working correctly, like there’s a folder: “Internal Storage\New Folder (2)”, and then you try to go to downloads and create a folder, and then it’s named “New Folder (3)” There was also an issue where the address bar pointed to somewhere else rather than the original path for that directory (so I had to combine multiple arrays for directory system to one, which is part of the Revamped file system) Fixed a background size inconsistency in the gallery section Fixed the status bar in gallery saying “undefined items” Fixed the context menus being transparent instead of blurry (for Files and Browser), so now they’re opaque like Chrome or Edge or Safari Removed all pointer events from the details bar at the top, so it no longer shows the hand pointing cursor when hovering Current issues/bugs The file/folder context menu is positioned oddly and doesn’t have any icons The details pane icons are blurred since it uses the 32x32 icons I used in the file/folder icons
Fluetro OS DevLog 049 Very little progress, since most of the time just went into debugging and fixing stuff, tried using Copilot in VS Code but it’s New stuff The context menu is finally aligned The context menu got icons now Made the delete button have a red icon and red text The open button in the context menu finally works Had to redo the file handling system so the open button system can be implemented easier Fixes Broke everything, yeah, literally the whole OS, while trying to redo the file handler because I was removing some lines (individual EventListeners) and putting them under one roof, but I forgot some brackets, since I couldn’t fix it easily, I tried to use Copilot (the one inside VS Code) to find out what’s causing the error, dude literally said that there’s an error in these lines, no elaboration or fix so I had to get the code from my backup and redo everything very carefully, so now it’s ok I have never positioned an element inside another element that can be resized, so this was new and challenging for me to align the context menu nicely with respect to the files window and its variable size system, it took some time, but I did it. Current issues/bugs Rename and Delete buttons are still to be implemented
Fluetro OS DevLog 050 Half-century DevLog? Really? New Stuff added The rename function works now Delete button kinda works Yeah that’s about it Fixes The rename function was really hard to implement, so there were lots of glitches and issues and stuff, I did manage to fix most of them, the rename box was originally meant to show over the existing file name, I did do some research to see if I could get it to work this way, but since I couldn’t get it working, I had to improvise and do the separate rename section. Tried to make the rename system be inside one single eventListener but couldn’t get it to work that way, had to create a separate function to call along with Pressing the rename and delete buttons no longer remove the selected state from the item. Current bugs/issues Clicking delete doesn’t dismiss the context menu (easy fix but it’s here because it’s just my current progress) Clicking delete for one item deletes all the items in the folder Delete is temporary and resets on refresh (for now at least) Nested Folders don’t work if you rename the parent folder (for example, in the video I rename a folder, then the folder inside it doesn’t open. This is fixed on a restart/webpage refresh)
Fluetro OS DevLog 051 Lost my 25-day Streak New Stuff added Photo viewer that can open photos from the gallery and adjusts according to image size Fixes Fixed the Delete system, so now it deletes only what you want to delete, and it’s now persistent so it stays that way even after a page refresh/restart Current bugs/issues The issue with the sub-folders not opening after the parent folder is renamed still exists
Fluetro OS DevLog 052 Well, this is embarrassing New Stuff added Browser has its own custom accent color now (like how browsers on Windows have) The Photo Viewer icon stuck in the dock is now gone and appears only when Photo Viewer is called Fixes Fixed the issue with the dock padding when Photo Viewer wasn’t called Stuff that happened Tried to add a dynamic accent color sync system for the browser, it worked to some extent, but it won’t instantly sync if you changed the wallpaper to change the accent color, but would sync that accent color after a restart, so I had to remove it. Will try to implement it later though. I have been working on a Music Player app (as I said that there will be one in a future update), wasted a lot of time debugging it trying to find out why the music wasn’t playing, turns out, the Integrated Browser in VS Code doesn’t allow intregated <audio> elements. Tried in my default browser (and brave), works as intended. (Please ignore the bright blue background, it’s just a placeholder)
Fluetro OS DevLog 053 Music to my ears New stuff added Added a Music Player with working Play/Pause, seekBar, Previous/Next and Queue Added music in Audio Folder in the Files App Redid almost all the Files App icons with higher quality versions Changed the Details Pane text to a more appropriate one Added a Supabase fetch system for the Music Clicking “Previous” while being on the 1st music in the Queue results in restarting that song Clicking “Next” while being on the last music in the Queue results in restarting that song Fixes Fixed some issues with the un-resizable windows, which could be resized earlier, they just didn’t show the custom cursors Fixed jumpy windows Fixed Music Player issues that I encountered along the way, like the Play/Pause buttons not rendering properly or the SeekBar jumping Current issues/bugs The Music takes some time to load, but it mostly depends on your internet connection The Queue is still custom arranged, and not alphabetically sorted
Fluetro OS DevLog 054 Mostly improvements New stuff added Maximizing/restoring down now has animations and they don’t interfere with the resizing scenario like earlier, this took so long to implement because my first ever project that involved JavaScript was just this year, so I am still learning. Revamped the Gaming Hub Added a Settings app, and hooked it to the Quick Settings panel so it can also be opened from there Fixes For some reason the animations weren’t working for all the windows, so I checked and tried lots of different stuff, and then found out that there was no height and width parameters for most of the windows, so I added some and that fixed the animations Current bugs/issues I just started working on the Settings app, so it’s really unfinished (shown in the video)
Fluetro OS DevLog 055 CSS stuff New stuff added/changelog Did the CSS for the Settings app Revamped some designs for the Gaming Hub and Settings when maximized so they don’t look weird Did a roadmap for all the settings to add Fixes Fixed some of the jumpy and jittery elements in the UI Current issues/bugs I still haven’t done anything about the JavaScript part of the Settings app so for now, everything is only visual Fun Fact The UI for this project was inspired by a leaked screenshot of a concept Windows version that surfaced online, I tried to remake that in my Windows 11 system and had a screenshot, finally found it and it’s attached below. The dock is inspired by a DeviantArt Post I saw a few years ago (I think it was called Fluent Big Sur). The top Bar UI of the OS is inspired by the new “Dock” feature added to Microsoft PowerToys and how I arranged it when I first enabled it (image attached)
Fluetro OS DevLog 056 More Settings New Stuff added/changelog Added some more settings Did the JS for the Wallpapers so they actually work now Fixes Found an issue that causes lag and no animations when trying to open the wallpaper change menu from quick settings or the settings app, it’s now fixed, I did it by rendering the options beforehand. I tried to fix this issue thinking it was settings app-only but had to give up on it since none of my attempts to fix it worked, then I found out the same was happening in the quick settings wallpaper picker, this was probably because it goes through the code and tries to render the image using JS, and it can’t do it before the app opening animation finishes. Current issues/bugs There is no CSS for the new settings areas that have been added There’s no JS for the new settings areas that have been added Note I am thinking of making a pack that can make Windows 11 feel like Fluetro, so please let me know if anyone would like that.
Fluetro OS DevLog 057 Finally finished adding all the settings options New stuff added/changelog Added settings for Interface, Privacy & Security and the About sections Did the CSS for all the above-mentioned areas Made the Location bar work using JS and made it sync with the one in Quick Settings (shown in video) Fixes Fixed the weird gaps and padding in some areas of the settings app Current issues/bugs Most of the settings are not yet functional Note The Personalization area might get Radio buttons (or menus) while the other sections will get checkboxes
Fluetro OS DevLog 058 More settings that actually work New stuff/changelog All the settings in the Personalization area work, including custom Accent colors and custom wallpapers All the settings in the Time and Date area work (24-hr format added from feedback) Only the double-click title bar to maximize option works in the Interface section Multiple changes in HTML to accommodate the custom wallpapers and CSS designs for different areas Fixes Fixed an issue where the settings window would lag when trying to do anything with it, like resize/maximize/minimize/close etc. Fixed an issue with the margins and padding in the Clock Flyout caused by the weird CSS code that I did for the it during the initial stages since I didn’t know that much about CSS yet Current issues/bugs If you select a custom wallpaper, then switch back to a preloaded wallpaper, and then try to go back to your custom one, you’ll be prompted to choose a new one, but you can just close the window if you don’t want to choose a new one Some of the settings in the Interface and Time & Date sections aren’t retained after a Fluetro restart The gradient in the left side lock screen isn’t coded properly so a section of it uses the default colors, resulting in weird gradients according to the custom accent used, this doesn’t happen in the case of Automatic Accents though Note: The Automatic Accent system is reserved only for the preloaded wallpapers and is disabled for custom ones
Fluetro OS DevLog 059 Settings app almost complete, only 2 settings left New stuff/changelog Navigation for the Settings app works now Custom accent no longer allows pure black/pure white and only allows 6-digit Hex codes All settings are now persistent throughout restarts and shutdowns Stretch dock to max width when an app is maximized works, even with multiple apps open Clear memo on Shutdown/Restart works too Added working Stardance and Github Page links to About section Show highlight for open apps option works too, so you can turn it off to get only a sleek border around the running app icon in the dock, instead of the full background The reset option works now too, and it also asks for confirmation Added tick marks to options that are turned on Added calculation logic to get the nice gradient in the lock screen according to the Custom accent too Fixes Fixed an issue where the running app highlight would appear even when the option was unchecked Fixed an issue with setting persistence which was caused due to some options being on by default Fixed an issue where the dock would get an awkward position when being stretched due to a maximized app Fixed an issue where multiple windows with some being maximized would glitch out the dock and make it toggle between its stretched and unstretched state Fixed an issue where the Window wouldn’t take up all of the screen when maximized if stretch dock option was checked Fixed an issue where the error windows would appear in the dock between Gaming Hub and Music player instead of appearing at the end of the dock Fixed the Songs in Music Player queue so they appear alphabetically Fixed an issue where you could put transparency values into hex for the accent to get a transparent color Fixed another issue with the clock Flyout which caused the Calendar to appear slightly off Fixed the issue from my previous DevLog which talked about the Lock Screen Gradient not being coded properly Current issues/bugs I haven’t implemented the Desktop icons yet, so the option in Settings remains unusable I also haven’t done the Privacy Policy or the Window for it, so that option remains unused too
Fluetro OS DevLog 060 More stuff, but nothing major New stuff/changelog So, the Photo Viewer app now supports moving between images inside the same folder, and it’s like that cuz it’s inspired by Windows Photo Viewer, and yes, it also supports your keyboard’s arrow keys There’s now a Text Editor embedded inside the Files app to edit your Text Files that you create There’re now some sample images in the Images folder, and thus in the gallery Gallery elements can now be selected and have their own context menus, which is literally the same as all the preloaded folders and files Fixes The Navigation pane in the Settings app now reacts to you scrolling in the app, so it highlights the corresponding panel button Current issues/bugs The sort button in the gallery does nothing, so it’s deprecated for that area, and gallery will be arranged by order of importance
Fluetro OS DevLog 061 File system complete, but still much more is left New stuff/changelog Added some sample video files (these are a surprise, I already ruined it for the images, but won’t for the videos) Added a working video player, but unfortunately, it doesn’t have a queue, so you open a video file and it plays that file Added a Pomodoro timer, based on cutepomodorotimer.com All music, images, and videos are now cloud-based, and thus will not be uploaded to the Project’s GitHub page The text at the top left now responds to the currently open and focused app Added icons for User folders Added an indicator when refreshing in the Files app Fixes Fixed an issue where the Dock would remain stretched if you closed an app while it was maximized Fixed an issue where you couldn’t name 2 different files of different types the same, so if a Folder is named “F1” you couldn’t name a file in the same directory as “F1” Fixed another issue in which naming a file the same as an app’s executable file would give it the same icon Sort option is now disabled in the Gallery and Home page of the Files app Photo viewer no longer uses random arrangement of photos, instead uses an ascending alphabetical order Current issues/bugs None encountered at this point in time
Fluetro OS DevLog 062 I said I’d work slowly and post one DevLog a day, I guess one of them was a lie New stuff/changelog Removed the toggle to show them from settings and scrapped the idea Added the OS logo to the About section in Settings Added a macOS Finder-like search bar, called “Find” Added a toggle for “Find” in the quick settings Made “Find” actually work Made “Find” actually update the suggestions with the app you last opened via it at the top Made the toggle functionality stay even after a restart/shutdown using localStorage Added an option in settings to clear recent searched apps during a restart/shutdown Changed the icons in the Quick Settings panel to use images of Windows 11’s Fluent Emojis, before they used Emojis which looked good on my end, but probably won’t on Linux or macOS. And yes, the search bar has animations, but its position is fixed cuz it looks good over there Fixes Fixed an issue, where checking the option to clear memo on shutdown/restart would clear it instantly Fixed multiple issues noticed regarding “Find” during its development Changed Daily Brief to load Dynamically when the app opens, to preserve Privacy further unless someone decides to open it manually rather than it just running in the background all INVISIBLE style. Current bugs/issues “Find” can’t browse through the File system, this is intended cuz “Find” is supposed to be a launcher for your apps There’s another issue, but it is going to be an easter egg
Fluetro OS DevLog 063 Redesigns, yayyy New stuff/changelog Files app now has Breadcrumbs design in the address bar instead of the normal “ " style, you can’t click on them to change locations though, it just looks cleaner, and when you click it, it turns back to the “ " style where you can edit stuff Quick settings redesign including all icons More additions to quick settings Find now supports keyboard input to select and launch items Did the HTML and CSS for some other little features that’ll be added All selection is now themed using Accent Color Added a text at the bottom of the Boot Screen prompting you to go Fullscreen mode “Escape” button on the keyboard can now be used to exit any input type box, like the Address Bar in the Files App, or the Custom Accent color and Weather location fields in the Settings app. Added an Easter egg (not gonna show that though) Fixes As I said under “New stuff”, Find now supports keyboard input and at first, it was glitching out randomly highlighting stuff, but now it’s fixed Fixed the issue with the Game Bar background so now the Games Library area has a whole background covering up the rest of the app. Fixed an issue where the Memo and the Find Recent searches list wasn’t actually being cleared on Shutdown/Restart, it was actually not being loaded the next boot. Fixed an issue which caused the “non-existent location error” to not pop up when you entered a non-existent address in the Files app’s address bar Fixed and issue where the window contents would overflow invisibly at the bottom and cause issues with the padding and margins Current issues/bugs I only did the HTML and CSS for the upcoming features, so they don’t actually work at this point, since I didn’t do the JS part.
Ships:
A WebOS inspired heavily from the Metro aesthetic from Windows 8/8.1 and Fluent Design aesthetic from Windows 11. Has multiple working apps, working login screen and desktop elements. Will get an update in the future for WebOS 2, with a working Start Screen inspired menu.
I have now made Fluetro OS into a much more complete OS experience. It now has a working Browser, AI Brief, and some games, along with the previous Paint, Memo and Calculator apps. It now also includes a Boot screen and a Restart function, along with automatic and more consistent Accent Color theming throughout the UI. Also, the UI is now much more consistent with its icons and design. The biggest challenge for me was trying to “not” make silly mistakes, I’d forget a comma or a semi-colon somewhere or misspell something and it’d break the whole system. I especially had trouble with the animations and different app states. I am especially proud of how much the OS has evolved through the span of only a month, I tried my best to make it feel usable and interactive. To test it, just click try project and use it. The AI Brief feature will ask you for your location permission and if denied will resort to IP-based location, but the built-in weather system of the OS will require you to add your own location from the Quick Settings....
|
1792990264.209012
|
1793076664.209012
|
|
41750
|
D E S C E N T by @subzeroditto | Stardance
|
subzeroditto
|
2
|
51.04
|
667
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-30T11:58:09Z", "hours": 6.0, "multiplier": 19.45, "payout": 110, "blessing": "neutral", "text": "hello D E S C E N D A N T S (for anyone new that’s what i call ppl who play D E S C E N T), this was quite a small set of updates i put out to improve the datapack i added : an improved guidebook with back buttons balancing changes a new magic system 3 unique magic weapons i would highly recommend checking out the Magician’s Deck, it took the longest by far", "repo": "https://github.com/banana-piecake/DESCENT/tree/master", "demo": "https://modrinth.com/datapack/d-e-s-c-e-n-t"}, {"ship_num": 2, "ts": "2026-08-25T04:12:01Z", "hours": 28.0, "multiplier": 19.93, "payout": 557, "blessing": "neutral", "text": "D E S C E N T was a datapack I made that originally stemmed from a small idea 9 months ago, and I had no clue when i was developing it that it would grow to be this big. Honestly it’s become a project I dreamed about making when i was young and i’m super proud of where it’s come. Installation : If modrinth has reviewed it, download it from there, otherwise you can download it here : https://github.com/banana-piecake/DESCENT/releases/tag/pre-modrinth Datapack install : install it in your world’s datapack folder, AND also install it in your resource pack folder, enable both Mod install : download the jar, install it as a mod in any of the 4 major modloaders (fabric, forge, quilt or neoforge), it’ll work in any world you create. Only for minecraft java version 26.2", "repo": "https://github.com/banana-piecake/DESCENT/tree/master", "demo": "https://modrinth.com/datapack/d-e-s-c-e-n-t"}]...
|
[{"post_id": 82559, "ts": "202 [{"post_id": 82559, "ts": "2026-10-25T07:50:28Z", "hours": 1.4553, "text": "hello d e s c e n d a n t s, 1 and a half hours of small changes also a new weapon, the ancient greatsword, which grants you buffs when lower hp"}, {"post_id": 80946, "ts": "2026-10-19T10:24:59Z", "hours": 0.8419, "text": "hello d e s c e n d a n t s, spear go boom yes very creative also the new animations now work with the moves, stagger, proper movement and constellations working with moves will come next"}, {"post_id": 80633, "ts": "2026-10-18T11:02:11Z", "hours": 1.4103, "text": "hello d e s c e n d a n t s, made a new weapon, sunder, which does a teleport slash, as well as made abilities for astronomer (tele slash and laser) it took longer than it shouldve ngl"}, {"post_id": 80298, "ts": "2026-10-17T05:37:49Z", "hours": 2.6522, "text": "yes d e s c e n d a n t s, i spent 2 and a half hours animating, modelling, texturing and creating a basic constellation system this is going to take a while"}, {"post_id": 79478, "ts": "2026-10-14T06:39:48Z", "hours": 0.4067, "text": "hello d e s c e n d a n t s, look at my bunny hat also stargazer got completely rebalanced but that’s not important"}, {"post_id": 79446, "ts": "2026-10-14T00:56:56Z", "hours": 0.7469, "text": "made some new textures, d e s c e n d a n t s code wise i havent really done much, im trying to get most textures etc done so i can get the trailer done btw if you wanna see what im doing more frequently, join #mc-datapacking in slack"}, {"post_id": 78668, "ts": "2026-10-11T07:27:55Z", "hours": 1.2456, "text": "another day, another sprite, D E S C E N D A N T S added some new sprite and a new item that shoots a laser"}, {"post_id": 78065, "ts": "2026-10-09T13:00:52Z", "hours": 1.2967, "text": "hello D E S C E N D A N T S, lets quickly go through everything i’ve added stargazer is mostly done, they can now atomise projectiles the new bottled echo item triggers your parry effects again half a second later, which can lead to some crazy builds frozen blade is now a dagger class weapon and added the pact which gives invincibility on half health to allow escapes and last stands here’s a representation of all the content so far"}, {"post_id": 77274, "ts": "2026-10-06T12:02:38Z", "hours": 0.4847, "text": "hello D E S C E N D A N T S, implemented some textures and added a couple new accessories 4 of these are the new marks, which grant passive stat ups and downs as well a regeneration accessory…"}, {"post_id": 77017, "ts": "2026-10-05T11:45:15Z", "hours": 2.6486, "text": "hello D E S C E N D A N T S, done a lot textures for rapiers are done, added 3 or so new accessories, finished the attack and movement code for stargazer, concepeted more, etc…"}, {"post_id": 76040, "ts": "2026-10-02T04:50:17Z", "hours": 0.395, "text": "hello D E S C E N D A N T S, finally finished some animations for the upcoming miniboss, take a look!"}, {"post_id": 75120, "ts": "2026-09-29T05:41:18Z", "hours": 1.3864, "text": "hello d e s c e n d a n t s, basic systems are difficult i finally got around to implementing parrying and accessories added 6 accessories and one parrying weapon kk going back to work now"}, {"post_id": 74266, "ts": "2026-09-27T03:13:30Z", "hours": 1.6011, "text": "backkkk from hiatus D E S C E N D A N T S done a lot of bugfixing and updating to 26.3"}, {"post_id": 59331, "ts": "2026-09-01T01:54:38Z", "hours": 0.4717, "text": "so someone asked me to make better bossbars, which is of course difficult because i make datapacks, but i found out how because im just like that ig"}, {"post_id": 57928, "ts": "2026-08-30T08:17:13Z", "hours": 0.8656, "text": "helllooooo D E S C E N D A N T S, finished off rituals and items for update, should be released on modrinth now"}, {"post_id": 57815, "ts": "2026-08-30T03:33:04Z", "hours": 2.3647, "text": "hello D E S C E N D A N T S, this weapon took so long but was so worth it First up, all bloom weapons now take durability accordingly second of all, this is the magician’s deck, the most complex weapon i’ve made so far on non flourishing use, it throws out a card that travels, spins for a short period of time, then returns to you, it travels through walls on flourishing use it shoots 4 cards that ignore i-frames but deal less damage it’s super fun and very cool"}, {"post_id": 57006, "ts": "2026-08-29T02:24:06Z", "hours": 0.4542, "text": "heya D E S C E N D A N T S, small stuff tbh magic weapons now take durability as well as bloom and longswords now require full charge to swing"}, {"post_id": 56517, "ts": "2026-08-28T09:55:04Z", "hours": 0.4983, "text": "to magic or to weapon, that is the question D E S C E N D A N T S… this is the kindling, which shoots flames, when flourishing it has a longer range, higher damage, and the flame are blue"}, {"post_id": 55499, "ts": "2026-08-27T12:00:38Z", "hours": 0.6433, "text": "well DESCENDANTS, that didnt take long this is bloom, its the representation of your mana, as you use a weapon, the flower grows, with it lowering when you dont use it, using it too long will wilt the flower, putting you on cooldown for a while when the flower is at it’s peak, you gain a flourishing boon, which changes how the weapon works for example, the wooden wand does 3 magic bursts instead of 1, greatly increasing the range, and has a damage increase bloom is about keeping track of what you’re doing and making sure to maintain a balance"}, {"post_id": 55479, "ts": "2026-08-27T11:00:00Z", "hours": 0.8431, "text": "i am back in action DESCENDANTS! i added some advanced vfx and hugely improved the guidebook so it’s actually usable now this is now out on modrinth! working on bloom right now, my take on mana"}, {"post_id": 52223, "ts": "2026-08-22T10:09:06Z", "hours": 0.3236, "text": "so uh, i lied DESCENDANTS, yeah i added a new ritual to dupe runes it was annoying me"}, {"post_id": 51604, "ts": "2026-08-21T11:35:23Z", "hours": 1.985, "text": "hello DESCENDANTS, this is the last devlog, as D E S C E N T is now ready to ship i finished all the dialogs every last one thank you all, truly, it has been wonderful to work on this, and i hope to release many updates Ship coming soon"}, {"post_id": 50913, "ts": "2026-08-20T11:44:32Z", "hours": 0.8972, "text": "hello DESCENDANTS. this is gonna be one of the last times i do this b4 shipping i finished all the boss drop rituals, they all require knowledge to perform, with that, every single ritual is complete only thing left is to write up the guidebook"}, {"post_id": 50833, "ts": "2026-08-20T08:38:41Z", "hours": 0.9872, "text": "helloooooooo DESCENDANTS, we are really close to done bosses now properly die, summon a rift to the overworld upon death, give music discs with a low chance, and give random knowledge super close to done"}, {"post_id": 50219, "ts": "2026-08-19T11:14:52Z", "hours": 0.6925, "text": "helllloooooo DESCENDANTS so uh another devlog i had a lot of free time okay i added more rituals voidtouched blade voidtouched shovel ice dagger fracture sculk bomb might go make more lowk"}, {"post_id": 50179, "ts": "2026-08-19T09:24:08Z", "hours": 0.6417, "text": "hellooooo DESCENDANTS! finishing off the project now :P: added knowledge, made bosses load chunks, more general improvements very close to finishing, just gotta finish off rituals, boss deaths and guidebook"}, {"post_id": 50026, "ts": "2026-08-19T01:42:29Z", "hours": 2.3022, "text": "hello DESCENDANTS, it’s been a while i have made a LOT of small polish and balance changes, but i’ll just go through the two major changes bloodfell items all have a new passive that buffs you on hit with a small chance, and bloodfell rituals are cheaper and easier rifts are finished, they send you to the void, where you get items to summon the bosses, the void itself is finally finished, meaning most of the content is done"}, {"post_id": 47870, "ts": "2026-08-16T03:52:46Z", "hours": 0.5964, "text": "LET’S GO GAMBLING!!! runes are a new system of item modifiers, separated into several tiers, which are rolled with a ritual, they can be applied to any item, they’re super fun and offer a lot of build variety (there are 30 of them) to obtain them you need 4 copper ingots, and 4 rune stones obtained from killing mobs. might add a way to dupe rune stones later in order to make them less grindy here you can see me rolling an epic rune on a tropical fish"}, {"post_id": 47839, "ts": "2026-08-16T01:51:36Z", "hours": 0.7267, "text": "Hello DESCENDENTS (that’s what you’re called now) Bloodfell weapons have felt disconnected for a while. they haven’t had any shared passive. i considered giving them all bleed, but the double damage is insane. The way to get bloodfell ingots is obtained through sacrifice, so they now have a new passive, Animosity! Animosity is the name of the datapack bloodfell weapons were originally planned for, before that was scrapped and moved to D E S C E N T, when you get hit, you have a chance to buff up."}, {"post_id": 47278, "ts": "2026-08-15T03:26:28Z", "hours": 0.6139, "text": "gun. the starlight is the final weapon of act one, obtained by beating the void guardians, an incredibly difficult duo boss fight, in exchange it’s incredibly powerful, summoning a powerful meteor on hit that explodes on landing."}, {"post_id": 46711, "ts": "2026-08-14T04:52:42Z", "hours": 0.2983, "text": "wow im doing stuff ig. finished rituals for soulbound and voidtouched harvester."}, {"post_id": 46647, "ts": "2026-08-14T01:47:39Z", "hours": 0.9144, "text": "three for one special today! so today i made : ice dagger : shoots a beam that slows enemies hit with an aoe explosion (no damage) voidtouched blade : random tp on rc with a short cooldown voidtouched steel (+the ritual for voidtouched steel) : the material used to create voidtouched weapons (basically enderite)"}, {"post_id": 46242, "ts": "2026-08-13T10:48:41Z", "hours": 0.6719, "text": "recreating old weapons is fun! today i remade the cursed cleaver, from this mod https://modrinth.com/mod/a.b.e.-forgery fun fact! this is the mod where void ripper originated from (or at least the entire concept of the boss, void, movement system, design etc…) anyways its pretty fun to use and i made it a lil stronger (its still kinda meh in terms of power but thats fine)"}, {"post_id": 45687, "ts": "2026-08-12T10:39:28Z", "hours": 0.6825, "text": "Guess it’s a two for one special today! sculk grenades are a new item that spread sculk when they hit blocks"}, {"post_id": 45655, "ts": "2026-08-12T09:10:23Z", "hours": 0.6406, "text": "Sculk is pretty cool was lowkey gonna make a splatoon mechanic but it’s lowkey impossible so i made wall climbing, sticking etc."}, {"post_id": 44549, "ts": "2026-08-10T11:50:47Z", "hours": 0.3733, "text": "finished the fracture lol, didnt expect to get it done"}, {"post_id": 44489, "ts": "2026-08-10T08:58:57Z", "hours": 0.4172, "text": "began working my first crossover! it’s the fracture from terramity 1.0"}, {"post_id": 43771, "ts": "2026-08-09T06:12:01Z", "hours": 0.8342, "text": "Weapon design is so fun :p today i finished the void fracture, a sword that applies 3 hits post attack, creating wild knockback and unpredictable combos"}, {"post_id": 43188, "ts": "2026-08-08T09:52:00Z", "hours": 0.2894, "text": "pretty small day updated void cull to require you to build 5 or more void stacks, which are applied by voidtouched weapons on hit, and get removed after 5 seconds, the timer resets on hit (same image as last time i have no clue how to display this in an image)"}, {"post_id": 42584, "ts": "2026-08-07T12:27:43Z", "hours": 1.0564, "text": "Keep inventory, a problem as old as time many mods and datapacks have tried to fix keep inventory, but none fit my situation so today i fixed that with the new soulbound enchantment, items dropped on death will return to you after 12 seconds, only if they are still on the floor https://youtu.be/zDh4c3vDw1o"}, {"post_id": 41876, "ts": "2026-08-06T11:07:15Z", "hours": 0.7853, "text": "making “enderite” actually cool, pt 2 (it’s called voidtouched steel) first things first, i added a new ritual to turn amethyst shards into echo shards, i want items to be assessable, and echo shards are a necessary crafting ingredient, but ancient cities often get looted early, and i keep multiplayer in mind second i added a new item, the voidtouched shovel, which has a chance to levitate your enemies on hit i then made voidtouched steel’s passive ability, void cull, which deals 999 damage when an enemy is under 25% max hp, (this will be rebalanced soon)"}, {"post_id": 41210, "ts": "2026-08-05T09:08:46Z", "hours": 0.5067, "text": "Enderite always feels like a boring concept to me everyone does the same thing, a straight upgrade, maybe a teleport ability, but i wanted to be different, to make an upgrade to netherite that gives you a reason to go back to the end without being boring introducing voidtouched steel, which will be crafted with shulker shells and purpur, making it accessible to all and renewable starting off we have the Voidtouched Harvester, an upgrade to the Bloodfell Scythe that now has one incredibly powerful dash that removees your gravity for the duration up next i need to work on the void execution mechanic"}, {"post_id": 40494, "ts": "2026-08-04T01:58:08Z", "hours": 0.5733, "text": "this is gonna take a while Patch notes : added 3 new sprites, updated creative menu to match finished D E S C E N T guidebook updated creative menu added one new function for an upcoming weapon updated the dialog menu"}, {"post_id": 39176, "ts": "2026-08-01T23:28:18Z", "hours": 0.2739, "text": "rebalanced the absurdly overpowered bloodfell cleaver it used to do 10 flat damage every 4th hit (magic, so pierces armour) which was busted, now it only does double damage i have no clue how this was logged as 16m i swear it took 3"}, {"post_id": 38640, "ts": "2026-08-01T04:25:23Z", "hours": 1.4375, "text": "Huge day today, lots of content today and yesterday’s progress: added THIRTY new enchantments as part of my custom rune system, you can have one per item, some apply effects such as burn or wither, and others are just stat buffs added the items to the creative menu via a neat trick, however it’s not fully implemented yet and finally, finished the duo void guardians boss fight, which required me to rework the entire system for every other boss good stuff, only took about 2 hours, so pretty solid lock in"}, {"post_id": 37357, "ts": "2026-07-30T00:42:06Z", "hours": 8.4064, "text": "this has been a long time in the works i began working on this during stardance, however i forgot to link hackatime so i have spent around 10-12 hours on it (just on coding, that’s ignoring modelling, animating, texturing, playtesting) if you want to see all the devlogs (to prove my progress ig) see here : https://www.youtube.com/playlist?list=PLPvXzO2e-wn0"}]...
|
Title: D E S C E N T by @subzeroditto | Stardance
Title: D E S C E N T by @subzeroditto | Stardance
Devlogs:
this has been a long time in the works i began working on this during stardance, however i forgot to link hackatime so i have spent around 10-12 hours on it (just on coding, that’s ignoring modelling, animating, texturing, playtesting) if you want to see all the devlogs (to prove my progress ig) see here : https://www.youtube.com/playlist?list=PLPvXzO2e-wn0
Huge day today, lots of content today and yesterday’s progress: added THIRTY new enchantments as part of my custom rune system, you can have one per item, some apply effects such as burn or wither, and others are just stat buffs added the items to the creative menu via a neat trick, however it’s not fully implemented yet and finally, finished the duo void guardians boss fight, which required me to rework the entire system for every other boss good stuff, only took about 2 hours, so pretty solid lock in
rebalanced the absurdly overpowered bloodfell cleaver it used to do 10 flat damage every 4th hit (magic, so pierces armour) which was busted, now it only does double damage i have no clue how this was logged as 16m i swear it took 3
this is gonna take a while Patch notes : added 3 new sprites, updated creative menu to match finished D E S C E N T guidebook updated creative menu added one new function for an upcoming weapon updated the dialog menu
Enderite always feels like a boring concept to me everyone does the same thing, a straight upgrade, maybe a teleport ability, but i wanted to be different, to make an upgrade to netherite that gives you a reason to go back to the end without being boring introducing voidtouched steel, which will be crafted with shulker shells and purpur, making it accessible to all and renewable starting off we have the Voidtouched Harvester, an upgrade to the Bloodfell Scythe that now has one incredibly powerful dash that removees your gravity for the duration up next i need to work on the void execution mechanic
making “enderite” actually cool, pt 2 (it’s called voidtouched steel) first things first, i added a new ritual to turn amethyst shards into echo shards, i want items to be assessable, and echo shards are a necessary crafting ingredient, but ancient cities often get looted early, and i keep multiplayer in mind second i added a new item, the voidtouched shovel, which has a chance to levitate your enemies on hit i then made voidtouched steel’s passive ability, void cull, which deals 999 damage when an enemy is under 25% max hp, (this will be rebalanced soon)
Keep inventory, a problem as old as time many mods and datapacks have tried to fix keep inventory, but none fit my situation so today i fixed that with the new soulbound enchantment, items dropped on death will return to you after 12 seconds, only if they are still on the floor https://youtu.be/zDh4c3vDw1o
pretty small day updated void cull to require you to build 5 or more void stacks, which are applied by voidtouched weapons on hit, and get removed after 5 seconds, the timer resets on hit (same image as last time i have no clue how to display this in an image)
Weapon design is so fun :p today i finished the void fracture, a sword that applies 3 hits post attack, creating wild knockback and unpredictable combos
began working my first crossover! it’s the fracture from terramity 1.0
finished the fracture lol, didnt expect to get it done
Sculk is pretty cool was lowkey gonna make a splatoon mechanic but it’s lowkey impossible so i made wall climbing, sticking etc.
Guess it’s a two for one special today! sculk grenades are a new item that spread sculk when they hit blocks
recreating old weapons is fun! today i remade the cursed cleaver, from this mod https://modrinth.com/mod/a.b.e.-forgery fun fact! this is the mod where void ripper originated from (or at least the entire concept of the boss, void, movement system, design etc…) anyways its pretty fun to use and i made it a lil stronger (its still kinda meh in terms of power but thats fine)
three for one special today! so today i made : ice dagger : shoots a beam that slows enemies hit with an aoe explosion (no damage) voidtouched blade : random tp on rc with a short cooldown voidtouched steel (+the ritual for voidtouched steel) : the material used to create voidtouched weapons (basically enderite)
wow im doing stuff ig. finished rituals for soulbound and voidtouched harvester.
gun. the starlight is the final weapon of act one, obtained by beating the void guardians, an incredibly difficult duo boss fight, in exchange it’s incredibly powerful, summoning a powerful meteor on hit that explodes on landing.
Hello DESCENDENTS (that’s what you’re called now) Bloodfell weapons have felt disconnected for a while. they haven’t had any shared passive. i considered giving them all bleed, but the double damage is insane. The way to get bloodfell ingots is obtained through sacrifice, so they now have a new passive, Animosity! Animosity is the name of the datapack bloodfell weapons were originally planned for, before that was scrapped and moved to D E S C E N T, when you get hit, you have a chance to buff up.
LET’S GO GAMBLING!!! runes are a new system of item modifiers, separated into several tiers, which are rolled with a ritual, they can be applied to any item, they’re super fun and offer a lot of build variety (there are 30 of them) to obtain them you need 4 copper ingots, and 4 rune stones obtained from killing mobs. might add a way to dupe rune stones later in order to make them less grindy here you can see me rolling an epic rune on a tropical fish
hello DESCENDANTS, it’s been a while i have made a LOT of small polish and balance changes, but i’ll just go through the two major changes bloodfell items all have a new passive that buffs you on hit with a small chance, and bloodfell rituals are cheaper and easier rifts are finished, they send you to the void, where you get items to summon the bosses, the void itself is finally finished, meaning most of the content is done
hellooooo DESCENDANTS! finishing off the project now :P: added knowledge, made bosses load chunks, more general improvements very close to finishing, just gotta finish off rituals, boss deaths and guidebook
helllloooooo DESCENDANTS so uh another devlog i had a lot of free time okay i added more rituals voidtouched blade voidtouched shovel ice dagger fracture sculk bomb might go make more lowk
helloooooooo DESCENDANTS, we are really close to done bosses now properly die, summon a rift to the overworld upon death, give music discs with a low chance, and give random knowledge super close to done
hello DESCENDANTS. this is gonna be one of the last times i do this b4 shipping i finished all the boss drop rituals, they all require knowledge to perform, with that, every single ritual is complete only thing left is to write up the guidebook
hello DESCENDANTS, this is the last devlog, as D E S C E N T is now ready to ship i finished all the dialogs every last one thank you all, truly, it has been wonderful to work on this, and i hope to release many updates Ship coming soon
so uh, i lied DESCENDANTS, yeah i added a new ritual to dupe runes it was annoying me
i am back in action DESCENDANTS! i added some advanced vfx and hugely improved the guidebook so it’s actually usable now this is now out on modrinth! working on bloom right now, my take on mana
well DESCENDANTS, that didnt take long this is bloom, its the representation of your mana, as you use a weapon, the flower grows, with it lowering when you dont use it, using it too long will wilt the flower, putting you on cooldown for a while when the flower is at it’s peak, you gain a flourishing boon, which changes how the weapon works for example, the wooden wand does 3 magic bursts instead of 1, greatly increasing the range, and has a damage increase bloom is about keeping track of what you’re doing and making sure to maintain a balance
to magic or to weapon, that is the question D E S C E N D A N T S… this is the kindling, which shoots flames, when flourishing it has a longer range, higher damage, and the flame are blue
heya D E S C E N D A N T S, small stuff tbh magic weapons now take durability as well as bloom and longswords now require full charge to swing
hello D E S C E N D A N T S, this weapon took so long but was so worth it First up, all bloom weapons now take durability accordingly second of all, this is the magician’s deck, the most complex weapon i’ve made so far on non flourishing use, it throws out a card that travels, spins for a short period of time, then returns to you, it travels through walls on flourishing use it shoots 4 cards that ignore i-frames but deal less damage it’s super fun and very cool
helllooooo D E S C E N D A N T S, finished off rituals and items for update, should be released on modrinth now
so someone asked me to make better bossbars, which is of course difficult because i make datapacks, but i found out how because im just like that ig
backkkk from hiatus D E S C E N D A N T S done a lot of bugfixing and updating to 26.3
hello d e s c e n d a n t s, basic systems are difficult i finally got around to implementing parrying and accessories added 6 accessories and one parrying weapon kk going back to work now
hello D E S C E N D A N T S, finally finished some animations for the upcoming miniboss, take a look!
hello D E S C E N D A N T S, done a lot textures for rapiers are done, added 3 or so new accessories, finished the attack and movement code for stargazer, concepeted more, etc…
hello D E S C E N D A N T S, implemented some textures and added a couple new accessories 4 of these are the new marks, which grant passive stat ups and downs as well a regeneration accessory…
hello D E S C E N D A N T S, lets quickly go through everything i’ve added stargazer is mostly done, they can now atomise projectiles the new bottled echo item triggers your parry effects again half a second later, which can lead to some crazy builds frozen blade is now a dagger class weapon and added the pact which gives invincibility on half health to allow escapes and last stands here’s a representation of all the content so far
another day, another sprite, D E S C E N D A N T S added some new sprite and a new item that shoots a laser
made some new textures, d e s c e n d a n t s code wise i havent really done much, im trying to get most textures etc done so i can get the trailer done btw if you wanna see what im doing more frequently, join #mc-datapacking in slack
hello d e s c e n d a n t s, look at my bunny hat also stargazer got completely rebalanced but that’s not important
yes d e s c e n d a n t s, i spent 2 and a half hours animating, modelling, texturing and creating a basic constellation system this is going to take a while
hello d e s c e n d a n t s, made a new weapon, sunder, which does a teleport slash, as well as made abilities for astronomer (tele slash and laser) it took longer than it shouldve ngl
hello d e s c e n d a n t s, spear go boom yes very creative also the new animations now work with the moves, stagger, proper movement and constellations working with moves will come next
hello d e s c e n d a n t s, 1 and a half hours of small changes also a new weapon, the ancient greatsword, which grants you buffs when lower hp
Ships:
D E S C E N T was a datapack I made that originally stemmed from a small idea 9 months ago, and I had no clue when i was developing it that it would grow to be this big. Honestly it’s become a project I dreamed about making when i was young and i’m super proud of where it’s come. Installation : If modrinth has reviewed it, download it from there, otherwise you can download it here : https://github.com/banana-piecake/DESCENT/releases/tag/pre-modrinth Datapack install : install it in your world’s datapack folder, AND also install it in your resource pack folder, enable both Mod install : download the jar, install it as a mod in any of the 4 major modloaders (fabric, forge, quilt or neoforge), it’ll work in any world you create. Only for minecraft java version 26.2
hello D E S C E N D A N T S (for anyone new that’s what i call ppl who play D E S C E N T), this was quite a small set of updates i put out to improve the datapack i added : an improved guidebook with back buttons balancing changes a new magic system 3 unique magic weapons i would highly recommend checking out the Magician’s Deck, it took the longest by far...
|
1792979418.9687157
|
1793065818.9687157
|
|
53903
|
MechSim by @rayzchen | Stardance
|
rayzchen
|
1
|
34.0
|
667
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T11:26:58Z", "hours": 34.0, "multiplier": 19.88, "payout": 667, "blessing": "neutral", "text": "MechSim MechSim is a mechanical system simulator that uses Lagrangian mechanics and Runge-Kutta methods to simulate various constrained systems. From expressions of energy it is capable of deriving equations of motion using symbolic differentiation and then stepping through them in time to simulate the motion of the system. How to use The homepage has links to each of the system simulator pages. Each page has an energy label and diagram, playback buttons and sometimes system equations. The Rolling Disk Pendulum has equations of motion too complex to display on the screen. There is also a button to view the Python system file that creates the solver. The page runs best on a landscape desktop orientation. Code structure The project is written in both Python and JavaScript: the main Lagrangian system solver uses Python for its polymorphism and flexible OOP, while the renderer uses JS to efficiently draw the system and update the GUI. Minimal external dependencies are used, so almost all of the code has been written from scratch. Neither component uses nor requires the internals of the other: the system solver simply outputs a few numbers representing the phase state of the system, and the renderer uses those numbers to calculate the positions of objects to draw. Challenges One of the first major issues encountered was how to simplify expressions. Many of the basic rules in algebra are rather complicated to systematically apply, such as collecting like terms or using index laws. In fact, since the expressions obtained from the Euler-Lagrange equations are of a specific format, this symbolic differentiation engine is not fully-featured. Another detail that required significant attention was how to embed Python into a JavaScript powered webpage. The library used for this, PyScript, has two different Python interpreters: Pyodide and MicroPython, the latter of which is 37x smaller in size. The symbolic differentiation engine does not require any external dependencies, but the RK4 time stepper does use NumPy, which is not available on MicroPython. This meant that much of the code needed to be rewritten using ulab, the MicroPython equivalent. In addition to this, many of the CPython-specific implementation details were different, such as dictionary key order and hash function limitations, had varying behaviour on MicroPython and had to be taken account of. One of the techniques I used was dynamically creating each simulation webpage entirely using JavaScript without any frameworks such as jQuery. This meant that each simulation would have almost identical HTML and simply differing diagram drawing JS, which made adding new simulations a matter of copying the template code and editing the rendering script. Merits The system code is extremely intuitive to the point where even non-programmers should be capable of understanding how the system is set up. The most complex system, the Rolling Disk Pendulum, has no less than 7 components exerting classical forces on each other, but the Euler-Lagrange equations convert this simply to a set of simultaneous equations that can be solved instantly for individual accelerations. This results in fluid motion appearing on the screen, no matter how chaotic the system is.", "repo": "https://github.com/rayzchen/mechsim", "demo": "https://rayzchen.github.io/mechsim/"}]...
|
[{"post_id": 71486, "ts": "202 [{"post_id": 71486, "ts": "2026-09-20T22:10:29Z", "hours": 0.3753, "text": "Final fixes Changed the behaviour of the playback button icons to keep sync with the simulation. Also fixed a layering issue in the CSS. The project should now be ready to ship! Temporary deployments can be found at https://rayzchen.github.io/mechsim/"}, {"post_id": 70744, "ts": "2026-09-19T18:11:01Z", "hours": 0.8522, "text": "Playback Controls Added reset, play/pause and step buttons! Temporary deployments can be found at https://rayzchen.github.io/mechsim/"}, {"post_id": 70180, "ts": "2026-09-18T17:06:37Z", "hours": 0.7183, "text": "Energy Bar Added a bar on the left to graphically show the ratio between kinetic and potential energies (the faster things are moving, the more light grey there is). Temporary deployments can be found at https://rayzchen.github.io/mechsim/"}, {"post_id": 70158, "ts": "2026-09-18T16:19:19Z", "hours": 0.7106, "text": "Homepage! Finally able to navigate through the six simulation systems from one place 🔥🔥 Had to wrestle with CSS flexbox and transitions to make nice animations! Temporary deployments can be found at https://rayzchen.github.io/mechsim/"}, {"post_id": 69204, "ts": "2026-09-16T16:21:41Z", "hours": 0.9172, "text": "Cart + Pendulum Added a simple cart and pendulum system, and realised the internal rotation angles were COMPLETELY opposite… Spent half an hour of unlogged time just to find out that all of the systems were symmetric in angles except ONE which had a wrong sign in the rendering code, making it LOOK symmetric… Fixed that without too much of a headache once found :D"}, {"post_id": 69138, "ts": "2026-09-16T13:30:59Z", "hours": 1.0844, "text": "System file viewer Added a button to view the Python code that sets up the physical system. Temporary deployments can be found at https://rayzchen.github.io/mechsim/"}, {"post_id": 65038, "ts": "2026-09-09T20:59:17Z", "hours": 0.6514, "text": "More simulations New simulations added: Swinging Atwood Machine Ball on Slope Simple Pendulum Temporary deployments can be found at https://rayzchen.github.io/mechsim/"}, {"post_id": 64996, "ts": "2026-09-09T19:25:27Z", "hours": 0.8075, "text": "Website structure rewrite To make adding new simulations easier, I restructured the file layout and added more dynamic code to the shared JS to create the elements required rather than copy pasting everything in every file. Also added labels to the tab title and bottom right corner. Also rewrote the drawing code for the rolling disk to add more details. Temporary deployments can be found at https://rayzchen.github.io/mechsim/disk/"}, {"post_id": 56937, "ts": "2026-08-28T23:23:50Z", "hours": 4.4119, "text": "Complex System Demo This system contains a semicircular anulus rocking on a rough plane, with a circular disk inside attached to a compound pendulum, and constrained with three springs. Adjusting the parameters took an awfully long time… Temporary deployments can be found at https://rayzchen.github.io/mechsim/disk.html"}, {"post_id": 56254, "ts": "2026-08-27T22:49:48Z", "hours": 5.4453, "text": "Circular Disks After much headache, two new constraints have been implemented: disk rolling on a plane and disk rolling in a circle. There were also lots of bugs in the LaTeX output, which I just kept encountering one by one, but hopefully they should now all be fixed. Temporary deployments can be found at https://rayzchen.github.io/mechsim/disk.html"}, {"post_id": 55340, "ts": "2026-08-27T02:46:15Z", "hours": 1.0178, "text": "GitHub deployment Temporary deployments can be found at https://rayzchen.github.io/mechsim/pend.html"}, {"post_id": 55304, "ts": "2026-08-27T01:35:48Z", "hours": 5.4156, "text": "LaTeX and more simplification This devlog was supposed to be two separate ones, but Stardance was refusing to calculate logged hours :( There’s a big list of changes here: Added a label to show kinetic and potential energies (and demonstrating conservation of energy!) Finally implemented combining like terms (3x + 2x = 5x) and like powers (sin(x) * sin(x) = sin^2(x)), which provides a huge speed increase since the equations of motion are now simpler Fixed a BUNCH of bugs that were cropping up under MicroPython (annoyingly CPython’s dict keys in order of assignment is an implementation detail that isn’t in MicroPython, and the hashing function in MicroPython is completely unreliable) Added LaTeX mode for converting expressions into strings, which automatically handles subscripts and symbols Added labels to the diagram also with LaTeX, tweaked for visibility"}, {"post_id": 55177, "ts": "2026-08-26T17:39:33Z", "hours": 3.4461, "text": "Officially brought to web! I had to wrestle with PyScript for an incredibly long time, but it’s finally running smoothly! Two big changes to the code are: micropython support, which runs and loads SO much faster than Pyodide (but meant I had to rewrite itertools.product and np.linalg.solve) helper classes to create a mechanical system and create energy formulae, which abstracts the math away into much more of an intuitive system! The code for setting up the system gets simpler and simpler each time…"}, {"post_id": 55036, "ts": "2026-08-26T13:50:10Z", "hours": 0.8836, "text": "PyScript testing Spent some time reading through the documentation of PyScript ( https://pyscript.net/ ) to see how well the code will run in the browser. Got the double pendulum code to run in the browser, and I will start writing a full demo soon."}, {"post_id": 54584, "ts": "2026-08-25T16:39:49Z", "hours": 1.2239, "text": "RK4 solver class I have implemented a class that handles solving, susbtitution and iteration of a system from the lagrangian and tested it with a pendulum-cart setup like the one found at https://www.myphysicslab.com/pendulum/cart-pendulum-en.html ."}, {"post_id": 54508, "ts": "2026-08-25T15:12:57Z", "hours": 1.5611, "text": "Better syntax and other tests The expressions can now be written in a much simpler syntax, making it easier to read! Below is also a test run simulating the angle of a rocking semicircle."}, {"post_id": 54158, "ts": "2026-08-25T00:26:04Z", "hours": 0.7797, "text": "Optimisations The old code used to substitute values and perform thousands of simplifications when they weren’t even necessary. Now the values are directly calculated, resulting in much better execution times."}, {"post_id": 54130, "ts": "2026-08-24T23:11:27Z", "hours": 1.7872, "text": "More complicated math The solver can now handle sin and cos, as well as expanding brackets! Also added the equation of motion solver to obtain a value for acceleration. Tested with a different rendering tool with a double pendulum setup. I will eventually create my own simulation using more math and rendering, this window is not part of the project. TODO: collecting like terms and cancelling down, optimising value substitution"}, {"post_id": 54084, "ts": "2026-08-24T21:19:34Z", "hours": 1.0189, "text": "Differentiation! The symbol engine is now capable of performing partial differentiation with respect to any variable, allowing the use of Euler-Lagrange to form differential equations. See https://en.wikipedia.org/wiki/Euler%E2%80%93Lagrange_equation"}, {"post_id": 54050, "ts": "2026-08-24T20:14:45Z", "hours": 0.4261, "text": "Basic expression manipulation The goal of this project is to write a library that can perform symbolic differentiation and solve for an “equation of motion” which can be used to run a simulation. The code for substituting variables is now complete. Here is a sample of how the substitution works."}]...
|
Title: MechSim by @rayzchen | Stardance
Devlogs:
Title: MechSim by @rayzchen | Stardance
Devlogs:
Basic expression manipulation The goal of this project is to write a library that can perform symbolic differentiation and solve for an “equation of motion” which can be used to run a simulation. The code for substituting variables is now complete. Here is a sample of how the substitution works.
Differentiation! The symbol engine is now capable of performing partial differentiation with respect to any variable, allowing the use of Euler-Lagrange to form differential equations. See https://en.wikipedia.org/wiki/Euler%E2%80%93Lagrange_equation
More complicated math The solver can now handle sin and cos, as well as expanding brackets! Also added the equation of motion solver to obtain a value for acceleration. Tested with a different rendering tool with a double pendulum setup. I will eventually create my own simulation using more math and rendering, this window is not part of the project. TODO: collecting like terms and cancelling down, optimising value substitution
Optimisations The old code used to substitute values and perform thousands of simplifications when they weren’t even necessary. Now the values are directly calculated, resulting in much better execution times.
Better syntax and other tests The expressions can now be written in a much simpler syntax, making it easier to read! Below is also a test run simulating the angle of a rocking semicircle.
RK4 solver class I have implemented a class that handles solving, susbtitution and iteration of a system from the lagrangian and tested it with a pendulum-cart setup like the one found at https://www.myphysicslab.com/pendulum/cart-pendulum-en.html .
PyScript testing Spent some time reading through the documentation of PyScript ( https://pyscript.net/ ) to see how well the code will run in the browser. Got the double pendulum code to run in the browser, and I will start writing a full demo soon.
Officially brought to web! I had to wrestle with PyScript for an incredibly long time, but it’s finally running smoothly! Two big changes to the code are: micropython support, which runs and loads SO much faster than Pyodide (but meant I had to rewrite itertools.product and np.linalg.solve) helper classes to create a mechanical system and create energy formulae, which abstracts the math away into much more of an intuitive system! The code for setting up the system gets simpler and simpler each time…
LaTeX and more simplification This devlog was supposed to be two separate ones, but Stardance was refusing to calculate logged hours :( There’s a big list of changes here: Added a label to show kinetic and potential energies (and demonstrating conservation of energy!) Finally implemented combining like terms (3x + 2x = 5x) and like powers (sin(x) * sin(x) = sin^2(x)), which provides a huge speed increase since the equations of motion are now simpler Fixed a BUNCH of bugs that were cropping up under MicroPython (annoyingly CPython’s dict keys in order of assignment is an implementation detail that isn’t in MicroPython, and the hashing function in MicroPython is completely unreliable) Added LaTeX mode for converting expressions into strings, which automatically handles subscripts and symbols Added labels to the diagram also with LaTeX, tweaked for visibility
GitHub deployment Temporary deployments can be found at https://rayzchen.github.io/mechsim/pend.html
Circular Disks After much headache, two new constraints have been implemented: disk rolling on a plane and disk rolling in a circle. There were also lots of bugs in the LaTeX output, which I just kept encountering one by one, but hopefully they should now all be fixed. Temporary deployments can be found at https://rayzchen.github.io/mechsim/disk.html
Complex System Demo This system contains a semicircular anulus rocking on a rough plane, with a circular disk inside attached to a compound pendulum, and constrained with three springs. Adjusting the parameters took an awfully long time… Temporary deployments can be found at https://rayzchen.github.io/mechsim/disk.html
Website structure rewrite To make adding new simulations easier, I restructured the file layout and added more dynamic code to the shared JS to create the elements required rather than copy pasting everything in every file. Also added labels to the tab title and bottom right corner. Also rewrote the drawing code for the rolling disk to add more details. Temporary deployments can be found at https://rayzchen.github.io/mechsim/disk/
More simulations New simulations added: Swinging Atwood Machine Ball on Slope Simple Pendulum Temporary deployments can be found at https://rayzchen.github.io/mechsim/
System file viewer Added a button to view the Python code that sets up the physical system. Temporary deployments can be found at https://rayzchen.github.io/mechsim/
Cart + Pendulum Added a simple cart and pendulum system, and realised the internal rotation angles were COMPLETELY opposite… Spent half an hour of unlogged time just to find out that all of the systems were symmetric in angles except ONE which had a wrong sign in the rendering code, making it LOOK symmetric… Fixed that without too much of a headache once found :D
Homepage! Finally able to navigate through the six simulation systems from one place 🔥🔥 Had to wrestle with CSS flexbox and transitions to make nice animations! Temporary deployments can be found at https://rayzchen.github.io/mechsim/
Energy Bar Added a bar on the left to graphically show the ratio between kinetic and potential energies (the faster things are moving, the more light grey there is). Temporary deployments can be found at https://rayzchen.github.io/mechsim/
Playback Controls Added reset, play/pause and step buttons! Temporary deployments can be found at https://rayzchen.github.io/mechsim/
Final fixes Changed the behaviour of the playback button icons to keep sync with the simulation. Also fixed a layering issue in the CSS. The project should now be ready to ship! Temporary deployments can be found at https://rayzchen.github.io/mechsim/
Ships:
MechSim MechSim is a mechanical system simulator that uses Lagrangian mechanics and Runge-Kutta methods to simulate various constrained systems. From expressions of energy it is capable of deriving equations of motion using symbolic differentiation and then stepping through them in time to simulate the motion of the system. How to use The homepage has links to each of the system simulator pages. Each page has an energy label and diagram, playback buttons and sometimes system equations. The Rolling Disk Pendulum has equations of motion too complex to display on the screen. There is also a button to view the Python system file that creates the solver. The page runs best on a landscape desktop orientation. Code structure The project is written in both Python and JavaScript: the main Lagrangian system solver uses Python for its polymorphism and flexible OOP, while the renderer uses JS to efficiently draw the system and update the GUI. Minimal external dependencies are used, so almost all of the code has been written from scratch. Neither component uses nor requires the internals of the other: the system solver simply outputs a few numbers representing the phase state of the system, and the renderer uses those numbers to calculate the positions of objects to draw. Challenges One of the first major issues encountered was how to simplify expressions. Many of the basic rules in algebra are rather complicated to systematically apply, such as collecting like terms or using index laws. In fact, since the expressions obtained from the Euler-Lagrange equations are of a specific format, this symbolic differentiation engine is not fully-featured. Another detail that required significant attention was how to embed Python into a JavaScript powered webpage. The library used for this, PyScript, has two different Python interpreters: Pyodide and MicroPython, the latter of which is 37x smaller in size. The symbolic differentiation engine does not require any external dependencies, but the RK4 time stepper does use NumPy, which is not available on MicroPython. This meant that much of the code needed to be rewritten using ulab, the MicroPython equivalent. In addition to this, many of the CPython-specific implementation details were different, such as dictionary key order and hash function limitations, had varying behaviour on MicroPython and had to be taken account of. One of the techniques I used was dynamically creating each simulation webpage entirely using JavaScript without any frameworks such as jQuery. This meant that each simulation would have almost identical HTML and simply differing diagram drawing JS, which made adding new simulations a matter of copying the template code and editing the rendering script. Merits The system code is extremely intuitive to the point where even non-programmers should be capable of understanding how the system is set up. The most complex system, the Rolling Disk Pendulum, has no less than 7 components exerting classical forces on each other, but the Euler-Lagrange equations convert this simply to a set of simultaneous equations that can be solved instantly for individual accelerations. This results in fluid motion appearing on the screen, no matter how chaotic the system is....
|
1792856922.2644923
|
1792943322.2644923
|
|
23257
|
website by @elaowl10 | Stardance
|
elaowl10
|
1
|
69.0
|
666
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-10T03:44:33Z", "hours": 69.0, "multiplier": 16.31, "payout": 666, "blessing": "neutral", "text": "I created a website to promote my mother and I’s creative projects, and the book we made. As someone with limited coding experience, especially in website building, starting this project off was quite a learning curve and often felt overwhelming/frustrating. However, I’m glad I stayed with it, because I feel a lot more comfortable with my coding capabilities AND I have my very own website! I am still getting the hang of website building, but I think this turned out good for a first time project!", "repo": "https://github.com/elaowl10-bot/personalwebsite", "demo": "https://elaowl10-bot.github.io/personalwebsite/"}]...
|
[{"post_id": 44392, "ts": "202 [{"post_id": 44392, "ts": "2026-08-10T03:11:52Z", "hours": 3.5961, "text": "dev log #7 exciting news!! the website its basically done ^_^!! updates: finished the current projects page, played around with formatting minor adjustments to other pages for consistency and little tweaks finished store page : well, to be fair the store won’t really exist for a while until i publish my website and can link insite payments…. but the scaffold with a few example display products are there! finished about page : the about page is finished, though i might change some of the css styling because there’s some thigns im not in love with adjusted to smaller screen sizes i went through and fixed all the pages so they can now be viewed ona mobile screen! idk how it looks on an ipad screen though… that might still need some work overall, the website is just about ready to be published! its just down to making small revisions, checking over for any bugs, and final adjustments! im hoping to ship it by next devlog!! yay!"}, {"post_id": 42732, "ts": "2026-08-07T16:25:12Z", "hours": 3.3158, "text": "dev log #6 (but its actually the 6th one this time my last dev log was my 5th– ignore my brain fart >^< anyways —– exciting update! the current projects page is finished now! heres what i updated: - finished the three article sections : these are the little sections that introduce/focus on each of my current projects– they’re what the whole page is about -i also decided to play around with a different style/layout for this section to help me get more comfortable and stronger with using css to make different format/section styles next steps -start and finish the about page and revamp the store page -format the entire website for mobile screen (oh god) BUT we are seeing the light at the end of the tunnel! i’m hoping to ship the project soon!"}, {"post_id": 38852, "ts": "2026-08-01T12:42:11Z", "hours": 5.1206, "text": "dev log #6!!! hi guys! sorry for the brief pause. i just havent had much time to code recently so this will be a smaller update. art lessons page : the art lessons page has finally been completed! new features —–– finished the supplies lists for each kind of lesson- now each lesson has a specific list of materials w/images/directing links to make finding suggested supplies easier! i also reused the code from the comissions FAQ section to create an FAQ section for the art lessons page <3 lastly, i created a new contact form specifically for requesting art lessons! current projects page : i am now working on the current projects page!!! i want this page to sort of be like a bunch of seperate articles/sections that show the current art projects i’m working on i began working on the first article section thing, which details the painting im working on, but there is still a lot of formatitng changes i want to make i’m thinking about whether i should keep it more text heavy, like a traditional article, or keep the images and little slide thingies -tbh i hate writing but i feel like it would be more polished with more of an article format TwT"}, {"post_id": 30933, "ts": "2026-07-18T22:43:30Z", "hours": 5.84, "text": "dev log #4 :DDD I’m going to do my best to continue be more comprehensive here. Homepage updates added a book preview element : thanks to a youtube tutorial by hankthetank, I was able to create a small preview that shows some of the books pages what makes this element so cool (in my opinion) is the animation, which mimics a real turning page (you could say its a real page turner hahaha im so funny) huge credits to www.turnjs.com for the js code that made this possible! removed iframes *: as much as the iframes on the home page were fun, i don’t think they really made it easy to go the website and purchase the book, especially since they were aligned on the page more decoratively then utility minded… instead, i replaced them with simply embedding links into the text. this felt more straightforward and made more sense, even tho iframes are fun art lesson page updates created form to sign up for art lessons finished small bio section/lesson info i am now working on finishing the needed materials section, which is so tedious because i want to link every product/material to make it easier to find them anyways, thats all for now!"}, {"post_id": 29893, "ts": "2026-07-17T01:53:21Z", "hours": 22.3981, "text": "Dev Log (^w^) It’s been… a while since my last update, so here’s a big catch-up! I’m trying to document everything properly from now on instead of relying on my goldfish memory. Homepage Updates Glassmorphism Added reusable glassmorphism cards. Replaced a plain gray border with a gradient pseudo-element for more depth. Credit to the Hype4 Glassmorphism Generator for the base effect. Animations Added floating stars to make the homepage feel more alive. Implemented scroll reveal animations so sections appear as users scroll. Created a reusable .swing class using CSS keyframes for playful hover animations. Hover Effects Added several interactions to make the site feel less static: Growing navigation buttons Lifting image cards 3D tilt effects Wobbling hanging images Animated logos Art Page Created a dedicated Art page that serves as a navigation hub. Current features: Navigation bar “Ela’s Art Emporium” logo AP Art portfolio showcase Eventually I’d like to add preview sections for the other art pages. Art Lessons Page Started building the Art Lessons page. Current features: About Me section Lesson preview cards Images and descriptions Consistent card styling Hover animations Still a WIP, but I’m really happy with the direction it’s going. Commission Page This has become one of the biggest pages on the website. Features include: Accordion timeline explaining the commission process Pricing section Interactive commission builder that generates price estimates FAQ accordion The commission builder was definitely the hardest feature I’ve coded so far, but also one of my favorites. Art Gallery Created a gallery using polaroid-style flip cards. Since every painting has different dimensions, I added a full image viewer so users can see artwork at its original size. I may replace the buttons with a click-to-expand feature later to reduce clutter. Next Steps Finish the Art Lessons page Create the Current Projects page Finish the About page Finish the Store page Make the website fully mobile-friendly (task of doom and despair…)"}, {"post_id": 24149, "ts": "2026-07-07T15:07:44Z", "hours": 25.4569, "text": "Okay I cant lie I slacked off on updating my dev log for like way too long oops! but we made a lot of progress!!! First of all, I finished the home page!! Yay!! I added a nav bar to the other pages (which aren’t yet finished) interactive elements liek slideshows, and other fun little sections. I am honestly loving the progress that is happening its come a long way for sure. There was a pretty steep learning curve at the beginning but now like 200 video tutorial later I finally feel like I know what im doing. Lets gooooo"}, {"post_id": 14479, "ts": "2026-06-23T16:44:40Z", "hours": 2.9353, "text": "I am working on adjusting the layout and creating the basic structure for my website."}]...
|
Title: website by @elaowl10 | Stardance
Devlogs:
Title: website by @elaowl10 | Stardance
Devlogs:
I am working on adjusting the layout and creating the basic structure for my website.
Okay I cant lie I slacked off on updating my dev log for like way too long oops! but we made a lot of progress!!! First of all, I finished the home page!! Yay!! I added a nav bar to the other pages (which aren’t yet finished) interactive elements liek slideshows, and other fun little sections. I am honestly loving the progress that is happening its come a long way for sure. There was a pretty steep learning curve at the beginning but now like 200 video tutorial later I finally feel like I know what im doing. Lets gooooo
Dev Log (^w^) It’s been… a while since my last update, so here’s a big catch-up! I’m trying to document everything properly from now on instead of relying on my goldfish memory. Homepage Updates Glassmorphism Added reusable glassmorphism cards. Replaced a plain gray border with a gradient pseudo-element for more depth. Credit to the Hype4 Glassmorphism Generator for the base effect. Animations Added floating stars to make the homepage feel more alive. Implemented scroll reveal animations so sections appear as users scroll. Created a reusable .swing class using CSS keyframes for playful hover animations. Hover Effects Added several interactions to make the site feel less static: Growing navigation buttons Lifting image cards 3D tilt effects Wobbling hanging images Animated logos Art Page Created a dedicated Art page that serves as a navigation hub. Current features: Navigation bar “Ela’s Art Emporium” logo AP Art portfolio showcase Eventually I’d like to add preview sections for the other art pages. Art Lessons Page Started building the Art Lessons page. Current features: About Me section Lesson preview cards Images and descriptions Consistent card styling Hover animations Still a WIP, but I’m really happy with the direction it’s going. Commission Page This has become one of the biggest pages on the website. Features include: Accordion timeline explaining the commission process Pricing section Interactive commission builder that generates price estimates FAQ accordion The commission builder was definitely the hardest feature I’ve coded so far, but also one of my favorites. Art Gallery Created a gallery using polaroid-style flip cards. Since every painting has different dimensions, I added a full image viewer so users can see artwork at its original size. I may replace the buttons with a click-to-expand feature later to reduce clutter. Next Steps Finish the Art Lessons page Create the Current Projects page Finish the About page Finish the Store page Make the website fully mobile-friendly (task of doom and despair…)
dev log #4 :DDD I’m going to do my best to continue be more comprehensive here. Homepage updates added a book preview element : thanks to a youtube tutorial by hankthetank, I was able to create a small preview that shows some of the books pages what makes this element so cool (in my opinion) is the animation, which mimics a real turning page (you could say its a real page turner hahaha im so funny) huge credits to www.turnjs.com for the js code that made this possible! removed iframes *: as much as the iframes on the home page were fun, i don’t think they really made it easy to go the website and purchase the book, especially since they were aligned on the page more decoratively then utility minded… instead, i replaced them with simply embedding links into the text. this felt more straightforward and made more sense, even tho iframes are fun art lesson page updates created form to sign up for art lessons finished small bio section/lesson info i am now working on finishing the needed materials section, which is so tedious because i want to link every product/material to make it easier to find them anyways, thats all for now!
dev log #6!!! hi guys! sorry for the brief pause. i just havent had much time to code recently so this will be a smaller update. art lessons page : the art lessons page has finally been completed! new features —–– finished the supplies lists for each kind of lesson- now each lesson has a specific list of materials w/images/directing links to make finding suggested supplies easier! i also reused the code from the comissions FAQ section to create an FAQ section for the art lessons page <3 lastly, i created a new contact form specifically for requesting art lessons! current projects page : i am now working on the current projects page!!! i want this page to sort of be like a bunch of seperate articles/sections that show the current art projects i’m working on i began working on the first article section thing, which details the painting im working on, but there is still a lot of formatitng changes i want to make i’m thinking about whether i should keep it more text heavy, like a traditional article, or keep the images and little slide thingies -tbh i hate writing but i feel like it would be more polished with more of an article format TwT
dev log #6 (but its actually the 6th one this time my last dev log was my 5th– ignore my brain fart >^< anyways —– exciting update! the current projects page is finished now! heres what i updated: - finished the three article sections : these are the little sections that introduce/focus on each of my current projects– they’re what the whole page is about -i also decided to play around with a different style/layout for this section to help me get more comfortable and stronger with using css to make different format/section styles next steps -start and finish the about page and revamp the store page -format the entire website for mobile screen (oh god) BUT we are seeing the light at the end of the tunnel! i’m hoping to ship the project soon!
dev log #7 exciting news!! the website its basically done ^_^!! updates: finished the current projects page, played around with formatting minor adjustments to other pages for consistency and little tweaks finished store page : well, to be fair the store won’t really exist for a while until i publish my website and can link insite payments…. but the scaffold with a few example display products are there! finished about page : the about page is finished, though i might change some of the css styling because there’s some thigns im not in love with adjusted to smaller screen sizes i went through and fixed all the pages so they can now be viewed ona mobile screen! idk how it looks on an ipad screen though… that might still need some work overall, the website is just about ready to be published! its just down to making small revisions, checking over for any bugs, and final adjustments! im hoping to ship it by next devlog!! yay!
Ships:
I created a website to promote my mother and I’s creative projects, and the book we made. As someone with limited coding experience, especially in website building, starting this project off was quite a learning curve and often felt overwhelming/frustrating. However, I’m glad I stayed with it, because I feel a lot more comfortable with my coding capabilities AND I have my very own website! I am still getting the hang of website building, but I think this turned out good for a first time project!...
|
1792997607.4204147
|
1793084007.4204147
|
|
17344
|
Privournal by @Manonit | Stardance
|
Manonit
|
2
|
48.0
|
664
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-07T18:09:56Z", "hours": 14.0, "multiplier": 13.4, "payout": 184, "blessing": "neutral", "text": "I made Privournal, a retro CLI application for private journaling and custom text encryption featuring basic ciphers, advanced encryption (Swiption, Randomised, Manual Modes Hehe), and new features like Show Keys and View Account. Pheww you’re gonna love this if you’ve people trying to read your journals 😭 The hardest part was restructuring the whole flow so as to make it less repetitive and cleaner , fixing CLI table alignment glitches, and honestly, if you saw my last ship you’d know that the Swiption feature I made gave me a pretty tough time, Lol. Though I’m really proud of creating a seamless terminal workflow and getting it published live on PyPI as well as GitHub, this is one of the few things I’ve worked on and completed in my life. To test it out, run pip install –upgrade privournal, and type privournal in your terminal, and try encrypting and immediately decrypting a short sentence with or without an account!", "repo": "https://github.com/sermanoire/Privournal", "demo": "https://pypi.org/project/privournal/"}, {"ship_num": 2, "ts": "2026-06-19T01:48:24Z", "hours": 34.0, "multiplier": 17.48, "payout": 480, "blessing": "neutral", "text": "I built Privournal, a command-line journal encryptor that allows users to encrypt and decrypt journal entries locally on their own device. Because for me, someone reading my journal is a legit nightmare, and Privournal is something I can use to keep my digital journals secure. For me that’s a clear quality-of-life improvement : ) Write your journal anywhere (Notes, Notion, etc), paste it into Privournal, get back unreadable text, paste that back into your app. No journal content is ever stored - only the encryption key, and that too locally, if you make an account. To read it yourself you can again head to Privournal and decrypt it! It supports multiple encryption modes, including Basic Encryption, Advanced Encryption, Randomized Encryption, and Swiption - a dynamic encryption system that changes a letter’s cover after a particular number of occurrences, making it impossible to crack. The biggest challenge was implementing Swiption and its decryption logic. Managing occurrence tracking, rotating covers, JSON storage, database integration, and reliable decryption took multiple iterations and a lot of debugging. I also migrated the project from a MySQL-based architecture to SQLite after realizing a shared database conflicted with the goal of being fully offline and private. I’m most proud of turning an idea into a complete, usable package that can be installed through PyPI. I’ve never worked on something so religiously on something of this complexity. The project ended up being over 1400 lines of code and taught me a huge amount about python, databases, GitHub and packaging, debugging, and obviously logical thinking. I’ve never worked on something so religiously on something of this complexity. 3 Major Quality-of-Life Improvements : Zero-setup local encryption - Works completely offline with automatic SQLite database. No server or complicated config needed. Powerful & flexible encryption - Multiple modes + Swiption (dynamic rotating covers) makes it much stronger than simple substitution ciphers. Seamless workflow - Write anywhere -> encrypt -> paste back -> decrypt easily with account or manual key. Perfect for daily journaling : ) Try creating an account (or continue without an account), encrypting a journal entry, saving it, and then decrypting it again. Swiption and Randomised Modes are the most interesting and secure features to experiment with. To test it, run these on terminal : pip install privournal python import MainCode MainCode.start() Thank you so much for reading! : )", "repo": "https://github.com/sermanoire/Privournal", "demo": "https://pypi.org/project/privournal/"}]...
|
[{"post_id": 77627, "ts": "202 [{"post_id": 77627, "ts": "2026-10-07T17:55:59Z", "hours": 2.0183, "text": "Devlog 16! — Okay, NOW It’s Done. 😭 Phew. I thought Privournal was finally finished, but while making the final ASCII recording, I found a bunch of small errors (Some was huge), inconsistencies and table issues that I had to fix. What I worked on: Added two new functions: Show Keys and View Account . Show Keys lets users view all their saved encryption keys. View Account displays their account details neatly in a table. Fixed several encryption and decryption bugs , including issues with journal selection, menu choices and input validation. Fixed problems with database values and journal data being handled incorrectly. Improved table formatting, spacing and alignment throughout the program. Cleaned up various small inconsistencies and errors that appeared during full end-to-end testing. Made the new ASCII recording . There was some old test data already stored, which was causing confusing duplicate entries and messing up the tables. After clearing that out, everything worked properly. And finally… The entire thing worked perfectly. 🎉 Most of this Devlog was about fixing the small things rather than adding huge new features, but it made Privournal more consistent and reliable."}, {"post_id": 77302, "ts": "2026-10-06T14:14:50Z", "hours": 6.5342, "text": "Devlog 15! It’s done. Phew. Finally, Privournal is DONE. Complete, everything’s perfect. In this final version I’ve made so many improvements! Instead of using time.sleep() to give pauses/time to copy the details, now the users can copy and paste encrypted text and its key without a time limit, and then they can simply press Enter to move ahead. I also made HUGE changes to the code. Earlier, the code used to run and at multiple steps ask for login/signup, which was fine but it was confusing. Now the first page is for login/signup, then the rest of the code flows smoothly accordingly. This restructuring required writing many parts of the code again and breaking a lot of functions into 2 parts. I also renamed some variables. I also worked on spacing and formatting. Now the user details are printed cleanly in a table. Overall, the code outputs are much more uniform. I made a new ASCII recording. It is yet to be updated on my GitHub, though. I’ve also published this new version on PyPI. If you had already installed Privournal, you can just update it. Now the main thing. I’m going to make a Website for Privournal where users wouldn’t need to install anything and can just go straight to encrypting or decrypting their journals. This version will still exist, though. It’ll be a rather Retro CLI version for people who like it this way. Phew. I’ll work on that now."}, {"post_id": 15049, "ts": "2026-06-24T13:23:31Z", "hours": 5.1881, "text": "##Devlog #14 - The Reviewer Arc 🥲 . Well… . The reviewer found some issues 😭 . So I went back and tested basically the ENTIRE project again. . While testing, I found and fixed a bunch of errors, especially in Advanced Encryption. I also added a lot of fallback checks throughout the code so Privournal doesn’t randomly decide to crash anymore 😭 . I also improved the decryption flow. . Earlier users had to select journals using IDs, now they can simply choose them by name, which feels way cleaner. . Another addition was a user guide in menu. I was short on time and it was a no brainer, so I used Claude to help generate the guide content and then integrated it into Privournal. The goal was simply to make the different encryption modes easier to understand :) . Apart from code changes, I also polished the project page, uploaded a sample flowchart, improved formatting and timing, and recorded a completely new asciinema demo PLUS I updated the README too. . Then came final testing, packaging, uploading the latest release, and requesting review again 🤞🏻 . Hopefully Privournal passes thru this time 😭 . Thank you : )"}, {"post_id": 11681, "ts": "2026-06-19T01:11:08Z", "hours": 16.0992, "text": "Devlog #13 - IT’S DONE DONE! The Final Chapter. FINALLY. After two intense days and 16+ hours of grinding, Privournal is officially complete and ready for Stardance! 😭🎉 OH AND Yeah, it’s been two days - Long time no see 😭 . Sorry for disappearing without posting Devlog #13 🥲 . These last 16+ hours were so packed with debugging, packaging, testing, and polishing that I kept postponing the devlog. So this one covers the entire final stretch. . Btw hey I’ll upload the clean Flowchart on Git repo, and yk I was gonna write a LOT here with complete details, but damn there’s a limit. Well it’s oki i’ll add a list of all my devlogs to the repo too :) What Happened? I thought Devlog #12 was the “everything works” moment, but the final stretch turned out to be the work. Audited every function in the codebase Fixed dozens of lingering bugs Cleaned up the entire code Updated the README 10+ times Set up PyPI packaging and releases Recorded asciinema demos (Took enormous time 😭) Added prettier output/interface functions Tested every scenario I could think of Major Change: MySQL → SQLite One of the biggest changes was moving away from MySQL. . Originally, Privournal used MySQL with accounts and a shared database. Later I realized that requires a server, hosting, maintenance, and introduces privacy concerns. . So I redesigned everything around SQLite. . Benefits: Fully offline More private Easier installation Simpler deployment Probably the biggest architectural change in the entire project. Biggest Bugs Fixed Login/signup flow issues Missing database commits Foreign key linking problems JSON serialization/loading bugs The infamous “extra spaces everywhere” decryption bug Variable scope and traversal issues Randomised Mode integration By the end of Day 1, the core encryption/decryption system was finally reliable. The Swiption Demon 😭 Swiption and SwipDe took forever. . The idea sounds simple: letters rotate through multiple covers after a certain number of occurrences. . Actually implementing occurrence tracking, rotation logic, life values, multiple dictionaries, JSON storage, and decryption logic nearly broke my brain 😭 . The funniest part? . After hours of struggling I realized I had overcomplicated everything. Since every cover uniquely maps to a letter, I could simply search through the dictionaries instead of tracking a ton of extra information. LIKE DAMN. Swiption is now fully functional and ended up becoming my coolest feature in the project. Packaging & Shipping Cleaned up the repository Improved README and documentation Fixed PyPI packaging issues Tested in fresh virtual environments Published releases Recorded final demos ✨ Project Complete Privournal is now a real, usable command-line journal encryptor. Thanks to: My brother for catching early logic flaws GPT for quick syntax rescues Everyone who followed the devlogs And myself for not giving up 😭 **Privournal is shipped and ready for Stardance! ** I’d love your feedback once you try it. . This project taught me something exams never did : . Working religiously on something with all your heart to make it real. . Thank you for reading all 13 devlogs ❤️ . ✨ See you in the next project ✨ | Project Complete | Ready to Submit | 🎉"}, {"post_id": 10031, "ts": "2026-06-16T16:23:14Z", "hours": 1.6072, "text": "Devlog #12 - IT WORKS! FINALLY! After an hour of debugging, EVERYTHING WORKS! -Encryption -Decryption -Uploading to & Fetching from the Database -Sign Up -Login . The only things that aren’t fully working yet are Swiption and Random Mode, and honestly that’s on me 😭. I got way too focused on making everything else work first AND GOD I had to improvise whole sections of the decryption logic, you won’t believe it. . If you compare the code I committed before this and the code I committed today, I had to improvise so much! . I removed and added so much. My old decryption was code wrong, I mean the logic was on point but the syntax and a few other things were off that’s why it wasn’t working. . Some of the errors were genuinely silly, again 😅 . All my elifs somehow had the same condition, and people this is why you don’t copy paste conditions to save time (I still don’t know how I missed that) 🥲 . My traversal i was a string, and I kept accidentally treating it like an int iterator, I mean ugh. . A lot of bugs were literally sitting right in front of my eyes. . Some bugs were much bigger tho. One of the weirdest happened after I finally got decryption working - The decrypted text had way too many spaces between words. . After staring at it for a while, I noticed that the number of spaces was exactly the same as the number of unique letters in the text. That’s when it hit me - the loop was continuing to run even after finding a match. Few “breaks” later hehe, everything worked 😭 . After Swiption and Random Mode, those 2 really aren’t done right now, I’m sorry I type so slow 😭 . Yeah so after that I’ll focus on making the code look real pretty, like -Fixing my silly variable names -Comment notes ig? -Better spacing and formatting -Cleaning up extra files -Writing a proper README and project description . And yes… On the 13th Devlog, the project will be done done 🤞🏻 . Note : I improvised all my previous devlogs, with proper format so that it’s easier to read, you can tell me if it’s better 🙃 . See you in the next one!"}, {"post_id": 9530, "ts": "2026-06-15T22:02:49Z", "hours": 3.1286, "text": "Devlog #11 - First Successful Test! Let’s go!!! . First successful test done 😇 . The database fetching works, the encryption flow works - it wasn’t working earlier tho (And I spent an hour finding errors, like i’d run it again n again and also ended up rewriting portions, like my Advanced Encyption code was all messed up 😭) . But yes, now it’s working, i’m sure there are a couple more errors but i’m on my way to fix em! . And yk some of the errors were so silly - I had written input(“Enter cover for”,x), and damn i failed to realise what the issue was. . Then after a lot of trying I asked GPT and it said it’s cuz input() can only have one argument in the braces 😅 . A lot of other errors too were like me getting all confused btw variable names, function not being global and so on. . But yeah, one at a time i fixed em, fixed the code and now only the refining of the code and some other bugs remain. . And um I had said i’d do it in 10 devlogs, but ah now it looks like 12th would be the last one. . But hey, the more the better, ig? 😭 . See ya in the next devlog!"}, {"post_id": 9123, "ts": "2026-06-15T08:21:26Z", "hours": 4.0792, "text": "Devlog #10 - A Slight Setback This is going to be the biggest devlog. And this one’s gonna be a disappointing one 🥲 . First of all, I was talking to my brother and he asked such a good question - It pointed to a flaw which I didn’t notice at all. . Let’s say there’s a word “am” in the journal, a’s cover is 1 and m’s cover is 27 (so am = 127). Now cuz there’s not spacing the decryption code will actually traverse thru each of number at a time in the encrypted text (127), so it’ll literally convert 1 and then 2 and then 7 separately. This was such a major flaw in my logic and I’m still agonizing internally over the fact that my eyes missed it. . But ah it’s ok, I’m fixing that by simply making adding a trailing space after the cover to separate each letter’s cover. . There was so much running and errors and staring at screen and all that. . Another thing I noticed is that in Advanced Encryption when the user will choose covers for 52 letters, he might accidentally repeat a cover - which obvi will make it impossible to distinguish btw 2 letters. So I gotta add each cover to a list and then every time the user adds a cover i’ll see if it’s already there in the list or not. . Now these flaws I got to know when I was talking to my brother, and it was past midnight. So almost immediately after waking up I was onto fixing these flaws, and it’s in progress :) . Apart from that, I’ve been refining the code (Found some silly errors in functions) and fixing more logic issues. . Earlier the Encryption Key that I was using to decrypt, it was a dictionary - with the keys as letters and values as the cover. So before uploading them to the db table, I converted them into text. But then while fixing decryption code, I did tried dict(the string key) and later found out that it all doesn’t work like that, the syntax. . I checked online, asked GPT, he suggested that I use the json module, and so I did. Json made it pretty easy, now the conversion was smooth and 2 liner. . Also I fixed all the login/signup system, it works as smooth as butter now Hehe . I’d say the main issue wasn’t the code it was following where am I. . Like cuz there are so many functions and steps and paths that I was getting overwhelmed (plus the code is like 600 lines), so I basically carefully went thru each line of code and arranged each function in an order and side by side made the final flowchart (It made following the code super easy and looks cool tbh) - But yes that’s hectic work right there. . Now after all that… Does the code run? HELL NO IT DOESNT! . It’s still showing 21 errors 😭 Plus, Swiption’s still left. . So right now, I’m trying to fix the flaws and errors and get this code up and running without Swiption, once it is smooth then at the end I can code Swiption into it. . See ya in the next devlog!"}, {"post_id": 8726, "ts": "2026-06-14T14:26:44Z", "hours": 1.1836, "text": "Devlog #9 - This was unexpected… Turns out there were some issues in the decryption function. It completely ignored spaces while decrypting, which definitely wasn’t ideal 😭 . I’ve fixed that tho. . Also I remade the tables in database with much more info such as date of encryption and email (for forgot password purposes) . And this code was getting too long, like more than 400 lines long. . So, I’ve started splitting things into different files to keep everything organized. Db code has its own file, big functions like AdvEn() have their own file, and the same goes for Swiption and Random Encryption logic. . Target’s to finish the code tonight. . Thanks for reading!"}, {"post_id": 8602, "ts": "2026-06-14T09:32:39Z", "hours": 1.1364, "text": "Devlog #8 - The Eights. . So this would be Privournal’s 8th devlog, and this one feels kinda special :) . My birthday falls on an 8th too, and I just love the number 8. . Anyways, I was actually supposed to be done with the Swiption feature by now, but I just couldn’t help myself and started working on the Random Encryption feature. . Reason’s that it just came to me - . Why not make Random Encryption available for both Advanced Encryption AND Swiption too?? . This would make the whole Encryption process super fast if some user doesn’t want to manually encrypt each letter. So I’m onto that, then I’ll immediately look into Swiption. . Then finally I’ll refine the whole code and just go through all the variables, functions and rename them if needed (I’m one of those people who name the variable something silly and forget what it was for 😭) . I’ve also started mapping out the overall visual flow of Privournal cuz it was getting a bit confusing. . I’m thinking abt wrapping this project up in about 12 devlogs, and then launching it. . You can also check out the GitHub - I’ve been committing code changes on it regularly :) . Thanks for reading!"}, {"post_id": 8359, "ts": "2026-06-13T21:56:30Z", "hours": 1.7153, "text": "Devlog #7 - Almost There! Only the Swiption feature remains! . I’ve also been thinking about adding another cool feature where the covers are randomly chosen using Python’s random module. The idea is that it’ll be added in Custom Encryption. . Also, my bad 😭 . I sometimes refered to the Custom Encryption as Advanced Encrytion, that might confuse you - but i’ll be consistent with names now. It’s just that it’s the start and so many features and ideas just mush into my head 🙃 . Once Swiption is done, the Python version should basically be mostly complete, and then it’ll be time for da next step . Getting all this on a website, tho that is gonna be really difficult for me, I really don’t know how to make websites 🥲. . Not gonna lie, that part scares me a a lot cuz I don’t wanna use AI for the website 😭 . I really don’t know much about web development, but I guess that’s part of building a project. You learn whatever you need as you go. . Thank you so much for reading these devlogs tho :) . Hopefully tmrw the code will be done and I’ll be one step closer to completing Privournal!"}, {"post_id": 8152, "ts": "2026-06-13T16:24:59Z", "hours": 1.0783, "text": "Devlog #6 - Advanced Encryption! Pheww, this part took some effort! . Today I worked on the main encryption logic for Advanced Encryption, and after a lot of thinking, coding, testing, and rethinking, I finally got the foundation for it down :) . This is one of the core features of Privournal, so it feels really good seeing it slowly come together. . That said, this is only a small win . The real challenge is gonna be the “Swiption” feature. Bet Swiption is gonna take half my brain cells 😭"}, {"post_id": 8096, "ts": "2026-06-13T14:51:13Z", "hours": 0.4681, "text": "Devlog #5 - Database Established! . Now the basic outline has to be perfected, with each and every thing being functional. . After spending some time figuring out SQL, databases, connections, and all that stuff, I finally managed to get Python talking to the database successfully :) . Seeing actual records being fetched felt pretty satisfying not gonna lie. For now, the goal’s Add features and make everything functional Connect everything together Improve the overall structure On the way to do that!"}, {"post_id": 8033, "ts": "2026-06-13T12:07:47Z", "hours": 0.9758, "text": "Devlog #4 - Still on the Db thing . Hehe, my highschool Python-SQL interface notes are coming in handy! . When I was studying this stuff, I honestly didn’t think I’d ever end up using most of it cuz it seemed too basic Turns out I was wrong :) . Since Privournal is gonna need a database for account credentials and all that, I’ve started revising my old notes and figuring out how everything fits together. . Let’s see how this goes!"}, {"post_id": 7690, "ts": "2026-06-12T21:00:25Z", "hours": 0.6611, "text": "Devlog #3 - The Plan’s Shape Guys! . Errors fixed and a basic outline has been made (This time on a paper Hehe) . AND i’ve thought about how i’m gonna go about it! . I’ve also spent some time thinking about how I’m actually gonna build this thing. . I’ll have to make a sql database ig (For account credentials and encryption details) and link it to my python code. I’m still new so i’m not sure if the sql database method for keeping records is how the real companies operate, but still seems pretty nice. . And I mean these are journals that we’re talking about, - so security and privacy matter a lot. . Tho my whole idea and code is that the actual journal entry is never stored. Only the encryption sequence and logic is. . That way, even if some dummy somehow got access to the database, they wouldn’t find the journal itself (Hehe can’t outsmart me) . For now, the plan pretty clear: Finish the Python main code Get encryption working properly Add database support Convert it into a website Well, that’s it ig. . I’m gonna go and tmrw complete the whole thing in python and then yes - hopefully convert it into a website :)"}, {"post_id": 7639, "ts": "2026-06-12T19:21:01Z", "hours": 0.9731, "text": "Devlog #2 - The First Error and an Outline . Ran into the first error, phewww! . Honestly, had it coming - things were going way too smoothly for a rather newbie like me 😭 . I was working on the account system and trying to get the signup and login flow working when I hit the error. I also created a basic outline of flow (In my mind 😅) . Spent a good chunk of time staring, retracing my code, and trying to figure out what exactly I had written wrong. But yes, I’m on it!"}, {"post_id": 7568, "ts": "2026-06-12T17:29:14Z", "hours": 0.5239, "text": "Devlog #1 - The Beginning . Today wasn’t about building features but about getting everything ready. . I finished setting up the Github thing (Took me an hour lol), cleaned things up, and wrote the first version of the README. . It might not seem like much, but damn did it feel so hectic, maybe cuz it’s my first time working on a real software project :) . After the setup, I finally started writing the core code. . Right now it’s just the foundation and an outline that I’ve set out to achieve :) . The journey begins!"}]...
|
Title: Privournal by @Manonit | Stardance
Devlogs Title: Privournal by @Manonit | Stardance
Devlogs:
Devlog #1 - The Beginning . Today wasn’t about building features but about getting everything ready. . I finished setting up the Github thing (Took me an hour lol), cleaned things up, and wrote the first version of the README. . It might not seem like much, but damn did it feel so hectic, maybe cuz it’s my first time working on a real software project :) . After the setup, I finally started writing the core code. . Right now it’s just the foundation and an outline that I’ve set out to achieve :) . The journey begins!
Devlog #2 - The First Error and an Outline . Ran into the first error, phewww! . Honestly, had it coming - things were going way too smoothly for a rather newbie like me 😭 . I was working on the account system and trying to get the signup and login flow working when I hit the error. I also created a basic outline of flow (In my mind 😅) . Spent a good chunk of time staring, retracing my code, and trying to figure out what exactly I had written wrong. But yes, I’m on it!
Devlog #3 - The Plan’s Shape Guys! . Errors fixed and a basic outline has been made (This time on a paper Hehe) . AND i’ve thought about how i’m gonna go about it! . I’ve also spent some time thinking about how I’m actually gonna build this thing. . I’ll have to make a sql database ig (For account credentials and encryption details) and link it to my python code. I’m still new so i’m not sure if the sql database method for keeping records is how the real companies operate, but still seems pretty nice. . And I mean these are journals that we’re talking about, - so security and privacy matter a lot. . Tho my whole idea and code is that the actual journal entry is never stored. Only the encryption sequence and logic is. . That way, even if some dummy somehow got access to the database, they wouldn’t find the journal itself (Hehe can’t outsmart me) . For now, the plan pretty clear: Finish the Python main code Get encryption working properly Add database support Convert it into a website Well, that’s it ig. . I’m gonna go and tmrw complete the whole thing in python and then yes - hopefully convert it into a website :)
Devlog #4 - Still on the Db thing . Hehe, my highschool Python-SQL interface notes are coming in handy! . When I was studying this stuff, I honestly didn’t think I’d ever end up using most of it cuz it seemed too basic Turns out I was wrong :) . Since Privournal is gonna need a database for account credentials and all that, I’ve started revising my old notes and figuring out how everything fits together. . Let’s see how this goes!
Devlog #5 - Database Established! . Now the basic outline has to be perfected, with each and every thing being functional. . After spending some time figuring out SQL, databases, connections, and all that stuff, I finally managed to get Python talking to the database successfully :) . Seeing actual records being fetched felt pretty satisfying not gonna lie. For now, the goal’s Add features and make everything functional Connect everything together Improve the overall structure On the way to do that!
Devlog #6 - Advanced Encryption! Pheww, this part took some effort! . Today I worked on the main encryption logic for Advanced Encryption, and after a lot of thinking, coding, testing, and rethinking, I finally got the foundation for it down :) . This is one of the core features of Privournal, so it feels really good seeing it slowly come together. . That said, this is only a small win . The real challenge is gonna be the “Swiption” feature. Bet Swiption is gonna take half my brain cells 😭
Devlog #7 - Almost There! Only the Swiption feature remains! . I’ve also been thinking about adding another cool feature where the covers are randomly chosen using Python’s random module. The idea is that it’ll be added in Custom Encryption. . Also, my bad 😭 . I sometimes refered to the Custom Encryption as Advanced Encrytion, that might confuse you - but i’ll be consistent with names now. It’s just that it’s the start and so many features and ideas just mush into my head 🙃 . Once Swiption is done, the Python version should basically be mostly complete, and then it’ll be time for da next step . Getting all this on a website, tho that is gonna be really difficult for me, I really don’t know how to make websites 🥲. . Not gonna lie, that part scares me a a lot cuz I don’t wanna use AI for the website 😭 . I really don’t know much about web development, but I guess that’s part of building a project. You learn whatever you need as you go. . Thank you so much for reading these devlogs tho :) . Hopefully tmrw the code will be done and I’ll be one step closer to completing Privournal!
Devlog #8 - The Eights. . So this would be Privournal’s 8th devlog, and this one feels kinda special :) . My birthday falls on an 8th too, and I just love the number 8. . Anyways, I was actually supposed to be done with the Swiption feature by now, but I just couldn’t help myself and started working on the Random Encryption feature. . Reason’s that it just came to me - . Why not make Random Encryption available for both Advanced Encryption AND Swiption too?? . This would make the whole Encryption process super fast if some user doesn’t want to manually encrypt each letter. So I’m onto that, then I’ll immediately look into Swiption. . Then finally I’ll refine the whole code and just go through all the variables, functions and rename them if needed (I’m one of those people who name the variable something silly and forget what it was for 😭) . I’ve also started mapping out the overall visual flow of Privournal cuz it was getting a bit confusing. . I’m thinking abt wrapping this project up in about 12 devlogs, and then launching it. . You can also check out the GitHub - I’ve been committing code changes on it regularly :) . Thanks for reading!
Devlog #9 - This was unexpected… Turns out there were some issues in the decryption function. It completely ignored spaces while decrypting, which definitely wasn’t ideal 😭 . I’ve fixed that tho. . Also I remade the tables in database with much more info such as date of encryption and email (for forgot password purposes) . And this code was getting too long, like more than 400 lines long. . So, I’ve started splitting things into different files to keep everything organized. Db code has its own file, big functions like AdvEn() have their own file, and the same goes for Swiption and Random Encryption logic. . Target’s to finish the code tonight. . Thanks for reading!
Devlog #10 - A Slight Setback This is going to be the biggest devlog. And this one’s gonna be a disappointing one 🥲 . First of all, I was talking to my brother and he asked such a good question - It pointed to a flaw which I didn’t notice at all. . Let’s say there’s a word “am” in the journal, a’s cover is 1 and m’s cover is 27 (so am = 127). Now cuz there’s not spacing the decryption code will actually traverse thru each of number at a time in the encrypted text (127), so it’ll literally convert 1 and then 2 and then 7 separately. This was such a major flaw in my logic and I’m still agonizing internally over the fact that my eyes missed it. . But ah it’s ok, I’m fixing that by simply making adding a trailing space after the cover to separate each letter’s cover. . There was so much running and errors and staring at screen and all that. . Another thing I noticed is that in Advanced Encryption when the user will choose covers for 52 letters, he might accidentally repeat a cover - which obvi will make it impossible to distinguish btw 2 letters. So I gotta add each cover to a list and then every time the user adds a cover i’ll see if it’s already there in the list or not. . Now these flaws I got to know when I was talking to my brother, and it was past midnight. So almost immediately after waking up I was onto fixing these flaws, and it’s in progress :) . Apart from that, I’ve been refining the code (Found some silly errors in functions) and fixing more logic issues. . Earlier the Encryption Key that I was using to decrypt, it was a dictionary - with the keys as letters and values as the cover. So before uploading them to the db table, I converted them into text. But then while fixing decryption code, I did tried dict(the string key) and later found out that it all doesn’t work like that, the syntax. . I checked online, asked GPT, he suggested that I use the json module, and so I did. Json made it pretty easy, now the conversion was smooth and 2 liner. . Also I fixed all the login/signup system, it works as smooth as butter now Hehe . I’d say the main issue wasn’t the code it was following where am I. . Like cuz there are so many functions and steps and paths that I was getting overwhelmed (plus the code is like 600 lines), so I basically carefully went thru each line of code and arranged each function in an order and side by side made the final flowchart (It made following the code super easy and looks cool tbh) - But yes that’s hectic work right there. . Now after all that… Does the code run? HELL NO IT DOESNT! . It’s still showing 21 errors 😭 Plus, Swiption’s still left. . So right now, I’m trying to fix the flaws and errors and get this code up and running without Swiption, once it is smooth then at the end I can code Swiption into it. . See ya in the next devlog!
Devlog #11 - First Successful Test! Let’s go!!! . First successful test done 😇 . The database fetching works, the encryption flow works - it wasn’t working earlier tho (And I spent an hour finding errors, like i’d run it again n again and also ended up rewriting portions, like my Advanced Encyption code was all messed up 😭) . But yes, now it’s working, i’m sure there are a couple more errors but i’m on my way to fix em! . And yk some of the errors were so silly - I had written input(“Enter cover for”,x), and damn i failed to realise what the issue was. . Then after a lot of trying I asked GPT and it said it’s cuz input() can only have one argument in the braces 😅 . A lot of other errors too were like me getting all confused btw variable names, function not being global and so on. . But yeah, one at a time i fixed em, fixed the code and now only the refining of the code and some other bugs remain. . And um I had said i’d do it in 10 devlogs, but ah now it looks like 12th would be the last one. . But hey, the more the better, ig? 😭 . See ya in the next devlog!
Devlog #12 - IT WORKS! FINALLY! After an hour of debugging, EVERYTHING WORKS! -Encryption -Decryption -Uploading to & Fetching from the Database -Sign Up -Login . The only things that aren’t fully working yet are Swiption and Random Mode, and honestly that’s on me 😭. I got way too focused on making everything else work first AND GOD I had to improvise whole sections of the decryption logic, you won’t believe it. . If you compare the code I committed before this and the code I committed today, I had to improvise so much! . I removed and added so much. My old decryption was code wrong, I mean the logic was on point but the syntax and a few other things were off that’s why it wasn’t working. . Some of the errors were genuinely silly, again 😅 . All my elifs somehow had the same condition, and people this is why you don’t copy paste conditions to save time (I still don’t know how I missed that) 🥲 . My traversal i was a string, and I kept accidentally treating it like an int iterator, I mean ugh. . A lot of bugs were literally sitting right in front of my eyes. . Some bugs were much bigger tho. One of the weirdest happened after I finally got decryption working - The decrypted text had way too many spaces between words. . After staring at it for a while, I noticed that the number of spaces was exactly the same as the number of unique letters in the text. That’s when it hit me - the loop was continuing to run even after finding a match. Few “breaks” later hehe, everything worked 😭 . After Swiption and Random Mode, those 2 really aren’t done right now, I’m sorry I type so slow 😭 . Yeah so after that I’ll focus on making the code look real pretty, like -Fixing my silly variable names -Comment notes ig? -Better spacing and formatting -Cleaning up extra files -Writing a proper README and project description . And yes… On the 13th Devlog, the project will be done done 🤞🏻 . Note : I improvised all my previous devlogs, with proper format so that it’s easier to read, you can tell me if it’s better 🙃 . See you in the next one!
Devlog #13 - IT’S DONE DONE! The Final Chapter. FINALLY. After two intense days and 16+ hours of grinding, Privournal is officially complete and ready for Stardance! 😭🎉 OH AND Yeah, it’s been two days - Long time no see 😭 . Sorry for disappearing without posting Devlog #13 🥲 . These last 16+ hours were so packed with debugging, packaging, testing, and polishing that I kept postponing the devlog. So this one covers the entire final stretch. . Btw hey I’ll upload the clean Flowchart on Git repo, and yk I was gonna write a LOT here with complete details, but damn there’s a limit. Well it’s oki i’ll add a list of all my devlogs to the repo too :) What Happened? I thought Devlog #12 was the “everything works” moment, but the final stretch turned out to be the work. Audited every function in the codebase Fixed dozens of lingering bugs Cleaned up the entire code Updated the README 10+ times Set up PyPI packaging and releases Recorded asciinema demos (Took enormous time 😭) Added prettier output/interface functions Tested every scenario I could think of Major Change: MySQL → SQLite One of the biggest changes was moving away from MySQL. . Originally, Privournal used MySQL with accounts and a shared database. Later I realized that requires a server, hosting, maintenance, and introduces privacy concerns. . So I redesigned everything around SQLite. . Benefits: Fully offline More private Easier installation Simpler deployment Probably the biggest architectural change in the entire project. Biggest Bugs Fixed Login/signup flow issues Missing database commits Foreign key linking problems JSON serialization/loading bugs The infamous “extra spaces everywhere” decryption bug Variable scope and traversal issues Randomised Mode integration By the end of Day 1, the core encryption/decryption system was finally reliable. The Swiption Demon 😭 Swiption and SwipDe took forever. . The idea sounds simple: letters rotate through multiple covers after a certain number of occurrences. . Actually implementing occurrence tracking, rotation logic, life values, multiple dictionaries, JSON storage, and decryption logic nearly broke my brain 😭 . The funniest part? . After hours of struggling I realized I had overcomplicated everything. Since every cover uniquely maps to a letter, I could simply search through the dictionaries instead of tracking a ton of extra information. LIKE DAMN. Swiption is now fully functional and ended up becoming my coolest feature in the project. Packaging & Shipping Cleaned up the repository Improved README and documentation Fixed PyPI packaging issues Tested in fresh virtual environments Published releases Recorded final demos ✨ Project Complete Privournal is now a real, usable command-line journal encryptor. Thanks to: My brother for catching early logic flaws GPT for quick syntax rescues Everyone who followed the devlogs And myself for not giving up 😭 **Privournal is shipped and ready for Stardance! ** I’d love your feedback once you try it. . This project taught me something exams never did : . Working religiously on something with all your heart to make it real. . Thank you for reading all 13 devlogs ❤️ . ✨ See you in the next project ✨ | Project Complete | Ready to Submit | 🎉
##Devlog #14 - The Reviewer Arc 🥲 . Well… . The reviewer found some issues 😭 . So I went back and tested basically the ENTIRE project again. . While testing, I found and fixed a bunch of errors, especially in Advanced Encryption. I also added a lot of fallback checks throughout the code so Privournal doesn’t randomly decide to crash anymore 😭 . I also improved the decryption flow. . Earlier users had to select journals using IDs, now they can simply choose them by name, which feels way cleaner. . Another addition was a user guide in menu. I was short on time and it was a no brainer, so I used Claude to help generate the guide content and then integrated it into Privournal. The goal was simply to make the different encryption modes easier to understand :) . Apart from code changes, I also polished the project page, uploaded a sample flowchart, improved formatting and timing, and recorded a completely new asciinema demo PLUS I updated the README too. . Then came final testing, packaging, uploading the latest release, and requesting review again 🤞🏻 . Hopefully Privournal passes thru this time 😭 . Thank you : )
Devlog 15! It’s done. Phew. Finally, Privournal is DONE. Complete, everything’s perfect. In this final version I’ve made so many improvements! Instead of using time.sleep() to give pauses/time to copy the details, now the users can copy and paste encrypted text and its key without a time limit, and then they can simply press Enter to move ahead. I also made HUGE changes to the code. Earlier, the code used to run and at multiple steps ask for login/signup, which was fine but it was confusing. Now the first page is for login/signup, then the rest of the code flows smoothly accordingly. This restructuring required writing many parts of the code again and breaking a lot of functions into 2 parts. I also renamed some variables. I also worked on spacing and formatting. Now the user details are printed cleanly in a table. Overall, the code outputs are much more uniform. I made a new ASCII recording. It is yet to be updated on my GitHub, though. I’ve also published this new version on PyPI. If you had already installed Privournal, you can just update it. Now the main thing. I’m going to make a Website for Privournal where users wouldn’t need to install anything and can just go straight to encrypting or decrypting their journals. This version will still exist, though. It’ll be a rather Retro CLI version for people who like it this way. Phew. I’ll work on that now.
Devlog 16! — Okay, NOW It’s Done. 😭 Phew. I thought Privournal was finally finished, but while making the final ASCII recording, I found a bunch of small errors (Some was huge), inconsistencies and table issues that I had to fix. What I worked on: Added two new functions: Show Keys and View Account . Show Keys lets users view all their saved encryption keys. View Account displays their account details neatly in a table. Fixed several encryption and decryption bugs , including issues with journal selection, menu choices and input validation. Fixed problems with database values and journal data being handled incorrectly. Improved table formatting, spacing and alignment throughout the program. Cleaned up various small inconsistencies and errors that appeared during full end-to-end testing. Made the new ASCII recording . There was some old test data already stored, which was causing confusing duplicate entries and messing up the tables. After clearing that out, everything worked properly. And finally… The entire thing worked perfectly. 🎉 Most of this Devlog was about fixing the small things rather than adding huge new features, but it made Privournal more consistent and reliable.
Ships:
I built Privournal, a command-line journal encryptor that allows users to encrypt and decrypt journal entries locally on their own device. Because for me, someone reading my journal is a legit nightmare, and Privournal is something I can use to keep my digital journals secure. For me that’s a clear quality-of-life improvement : ) Write your journal anywhere (Notes, Notion, etc), paste it into Privournal, get back unreadable text, paste that back into your app. No journal content is ever stored - only the encryption key, and that too locally, if you make an account. To read it yourself you can again head to Privournal and decrypt it! It supports multiple encryption modes, including Basic Encryption, Advanced Encryption, Randomized Encryption, and Swiption - a dynamic encryption system that changes a letter’s cover after a particular number of occurrences, making it impossible to crack. The biggest challenge was implementing Swiption and its decryption logic. Managing occurrence tracking, rotating covers, JSON storage, database integration, and reliable decryption took multiple iterations and a lot of debugging. I also migrated the project from a MySQL-based architecture to SQLite after realizing a shared database conflicted with the goal of being fully offline and private. I’m most proud of turning an idea into a complete, usable package that can be installed through PyPI. I’ve never worked on something so religiously on something of this complexity. The project ended up being over 1400 lines of code and taught me a huge amount about python, databases, GitHub and packaging, debugging, and obviously logical thinking. I’ve never worked on something so religiously on something of this complexity. 3 Major Quality-of-Life Improvements : Zero-setup local encryption - Works completely offline with automatic SQLite database. No server or complicated config needed. Powerful & flexible encryption - Multiple modes + Swiption (dynamic rotating covers) makes it much stronger than simple substitution ciphers. Seamless workflow - Write anywhere -> encrypt -> paste back -> decrypt easily with account or manual key. Perfect for daily journaling : ) Try creating an account (or continue without an account), encrypting a journal entry, saving it, and then decrypting it again. Swiption and Randomised Modes are the most interesting and secure features to experiment with. To test it, run these on terminal : pip install privournal python import MainCode MainCode.start() Thank you so much for reading! : )
I made Privournal, a retro CLI application for private journaling and custom text encryption featuring basic ciphers, advanced encryption (Swiption, Randomised, Manual Modes Hehe), and new features like Show Keys and View Account. Pheww you’re gonna love this if you’ve people trying to read your journals 😭 The hardest part was restructuring the whole flow so as to make it less repetitive and cleaner , fixing CLI table alignment glitches, and honestly, if you saw my last ship you’d know that the Swiption feature I made gave me a pretty tough time, Lol. Though I’m really proud of creating a seamless terminal workflow and getting it published live on PyPI as well as GitHub, this is one of the few things I’ve worked on and completed in my life. To test it out, run pip install –upgrade privournal, and type privournal in your terminal, and try encrypting and immediately decrypting a short sentence with or without an account!...
|
1792982962.9040806
|
1793069362.9040806
|
|
17942
|
Cyber OS by @Ann_with_an_e | Stardance
|
Ann_with_an_e
|
2
|
48.0
|
655
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-07T01:12:54Z", "hours": 28.0, "multiplier": 14.07, "payout": 394, "blessing": "neutral", "text": "What I made: Cyber OS is an interactive, web-based OS. It has multiple applications, with closable, draggable windows with a z-index. There are roughly twelve applications in total, not counting the ones on the top bar. While I would love to ramble about all my applications, here are the ones I’m most proud of! In-Filter-Traitor: An application that filters your photos to either black and white, or a two-toned image that you can choose the shadows and highlights of! Ever felt your photos could benefit from a few more Gotham vibes? Never? Well, that’s disappointing. POST-IT: A virtual sticky note! I really love it mostly due to the design that may or may not have been a direct rip-off from the app in windows. It’s silly, but I’m happy that I managed to recreate it. Terminal: It lets you control the OS by practicing the ancient art of typing orange runes into a dark void. If you don’t know what to type, the void will inform you. Easter Egg! It just occurred to me that I may be overhyping this. Anyway, this is how it works- on the last slide of the sidebar there is an app called Comms. You will not be able to access it without a password. The password is hidden somewhere within the OS. There’s a window called Developer Logs that might tell you what Comms does, but not the password. If you’re short of time, or not up for a treasure hunt, the password is in my README with a spoiler warning! Also tell me if my hiding place was too obvious lol. Feeling Lost? Something not working? Please go through the README, I do think it covers most of the quirks you might encounter. Any application that’s un-intuitive has ⓘ. If you’re confused, click on it! If its anything that isn’t covered between the two, tell me! I’ll make sure to fix it up. What I’m proud of This took me so much time to make. I’m really proud that I managed to do this regularly between school, classes and competitions. I’m really bad at time management so this is a huge win for me! I’m also really proud of the fact that I’m able to debug stuff myself now a bit more. Before I needed to constantly google why my console was showing up an error, and how to fix it. Now I can somewhat understand why my code glitched, and the steps I can take to remedy it. I had so much fun making this, and now I’m going to be slightly lost now lol. But anyway, I put a lot of heart into this project, and I really hope that its visible! Thank you all for following along!", "repo": "https://github.com/syntax-error4O4/Cyber-OS", "demo": "https://syntax-error4o4.github.io/Cyber-OS/"}, {"ship_num": 2, "ts": "2026-06-20T08:35:30Z", "hours": 20.0, "multiplier": 13.37, "payout": 261, "blessing": "neutral", "text": "#Overview Cyber OS is a web based OS that is interactive with multiple draggable and closable windows. It has a hand-drawn background with a unique color palette inspired from cyberpunk and old CRT monitors. #Applications -Archive of Words: An application that introduces you to the most obscure words English has to offer. Have you ever wanted to win a crossword by knowing an eight letter word for theft? Well, here’s your chance! -Painterly: A standard painting application with a small twist- a pure black canvas and colors catered specifically for contrast without looking overwhelming. It also features a brush size changer, undo and redo buttons -Calculator: Your standard run-of-the-mill application for basic arithmetic computations -Display Settings: Distinct display settings meant to mimic the look of an old school CRT monitor. They can also be turned off, if they are not to the users’ liking. -Desktop Companion: An animated pixel sprite at the bottom right that keeps you company as you go about your work. _ I honestly found that learning code while actively creating a project was so much more enjoyable. I ran into so many hurdles, especially with the js code, from formatting to naming mishaps. I did learn more from making those mistakes than just knowing about them. I did want to create a few more interesting applications, but I need to learn a bit more before trying them. Keep an eye out! I’m incredibly proud of how this turned out. And I hope you’ll love it too! Cheers!", "repo": "https://github.com/syntax-error4O4/Cyber-OS", "demo": "https://syntax-error4o4.github.io/Cyber-OS/"}]...
|
[{"post_id": 23336, "ts": "202 [{"post_id": 23336, "ts": "2026-07-06T07:03:50Z", "hours": 2.4808, "text": "What I added Okay, you guys; this might just be the most complete this project has ever been. I only did minor additions here, so here goes- I made add the buttons with text on them hover uniformly. Its slightly superficial, but I just wanted them to be uniform. I added information buttons on the header for certain apps that might have quirks or be un-intuitive to navigate. Tbh I copied the code for my first information button pop-up and just added a different letter in front of it. I also added wallpapers! You now have six wallpapers to choose from. Initially I wanted to draw all of them. The default background I drew btw, but I just don’t have the time for it rn, so maybe in the future. So someone reviewed and told me my project doesn’t work in comet. I didn’t really know what comet was until I looked it up. There are a lot of differing opinions on what it could have been, so I have no clue. If someone has any idea, do reach out. Finally, I organized my html. Its strange to see how many comments I made towards the beginning, telling exactly what a div did. I was really unfamiliar with making page of that size, even if it wasn’t much. This time I didn’t go overboard in commenting and organising it I don’t have git so now I need to update my files on github, and edit the README. Once that’s done, its time to ship! Super excited for that"}, {"post_id": 22919, "ts": "2026-07-05T15:47:40Z", "hours": 4.1128, "text": "What I Added I think this might just be my best app yet. I created an app called Terminal, which is a ripoff PowerShell. I had so much fun making it! There are multiple commands, some which run an animation, and others that perform simple tasks. When I was done with Terminal, I saw that I had exactly 11 apps. Which is a great number, don’t get me wrong, but I wanted an even twelve. Hence-Comms. My final app. You need a password to access it. Where you may get the password? That’s up to you to click around and find out. If you’re curious enough to know what it is, but not enough to explore, I’ll put it in my READMe when I ship this! Because I do want everyone to be able to use all applications, if you don’t feel like a treasure hunt. It’s a pretty cool app that you miiighht need if you want to access another window. I added another button on the Top Bar. It opens up a window, that may or may not be related to Comms. Be warned, it probably might tell you exactly what Comms is but not how to access it. This window allows you to use whatever you find in Comms to good use! I also made the two-tone filter update while you choose the colours. I also discovered the Go Live extension, which has worked wonders for both my refresh button and my console, which kept showing me the phrase unsafe URL for every image I loaded. I’m glad it finally found peace in its security"}, {"post_id": 22203, "ts": "2026-07-04T15:40:02Z", "hours": 7.6867, "text": "What I Added I added a third slide to my sidebar, which means we get a new group of apps! With context to my last post about practicing DRY, I decided to parse through my code to see how much I could cut down. There was so much! I was under-using my classes so much, its crazy. Or so many places I didn’t make a class at all and just copy-pasted the styles on the buttons. I did my level best to fix all of that without breaking anything. My code looks much better now. Thanks for the tip, random reviewer I do not know-I finally saw the light lol. I made an app to place filters on images! Right now there’s a B&W filter and two toned filter the user can choose. There’s also an info button on the header if there’s any confusion. I feel like I’ll be adding that info button in a few more places. I also made a calendar. Okay, I’m going to vent here a little, feel free to scroll. This is mostly abt all the issues I ran into while coding-and all of it is very dumb. I learnt that I apparently didn’t know that its calendar not calender. Also I switch between American and British English a lot, so my html and js did NOT match in their spelling of “grey”. Istg, I make my own life harder at times. In the same vein, a similar naming mishap caused my js to break- it was at the end of the file, and hidden enough that its not visible while using. When I wrote the code for my calendar it didn’t work. I thought I made a mistake. I spent so much time rewriting, googling, getting frustrated. A lot of places it mentioned maybe the script wasn’t being defered properly. I was like nope, everything else works fine. I put the logic into the html script, it worked. I thought it was a mistake in the punctuation or indent and left it at that. Later in the day when I returned to make another app, it obviously did not work- I went through the same cycle. This time I was stubborn and didn’t want to put it in the html. I literally exhausted all possible options until I realized I could just check the console. There I did find an error, not in my calendar code, not in the app I was making, but in the filter app. I went through the five stages of grief in that second lol. I have no idea why I spelled grey differently. There should be a spellcheck while coding too. English is not my native language, so it could be a bit excusable, but I feel so dumb rn. You live and learn ig."}, {"post_id": 21307, "ts": "2026-07-03T04:55:00Z", "hours": 7.8197, "text": "So first of all, I got my payout! Thank you so much to everyone who voted and gave me feedback. All your suggestions were really great and I’ve started to fix some of the bugs you guys found. I would have probably not have found out about the zooming thing because I never zoom in lol. What I Added So, I added a task manager. It’s basically a to-do list, where you can list the stuff you need to get done and check the box once it is. Initially it was just a button the hid itself. Out of curiosity I googled and found out there is a way to add a checkbox! You make an input element and give it the type “checkbox”. I rewrote my code to add that. Then I made a stopwatch and timer thing. The js felt really hard to write, so I asked a friend for help and she basically guided and explained the logic to me. The timer style was modelled of that of my phone, which meant you needed to scroll to set the time. But the scrolling was interpreted as dragging by my dragging code, so I needed a fix. Right now, you need to click on the text and press the arrow keys to navigate it. I understand that it might not be very intuitive, so I added a pop-up warning. I also added a few more tracks to my song app along with a scroll bar. I implemented some suggestions from the reviews, like making the window offset at the centre instead of the top left and it has made such a difference. I also understood I was repeating myself a lot in the code as someone pointed out. I’m trying my best to be mindful and code effectively now! In the interest of transparency, I was making a weather app that could check your weather. I ran into a lot of issues on the first half itself. I spent a lot of time trying to fix it. At one point, it messed up all my other code, so I had to delete it. At least an hour or three was wasted in that. I feel like it’s a bit unfair of me to count that so I’ll turn off my tracker the next time I code. Idk, it just makes me feel like I’m cheating to count those hours when nothing really came out of it. Anyways, here’s the progress pic!"}, {"post_id": 17495, "ts": "2026-06-28T09:39:53Z", "hours": 5.9353, "text": "What I added: I really wanted to make a music player next, so that’s what I set upon making. I already knew that I wanted to make it look like an iPod. This app now can mute, skip to songs on the playlist, show you the menu and pause. It will also play on the background while the app is both open or closed until the song is over. Next up is a POST-IT app. It create multiple post its, change colours and has multiple formatting options. This was even more fun to make than the music player lol. My icon accidently hides behind the ipod icon, so I do need to fix that. Its pretty straightforward but I feel to lazy rn. I realized that if I were to keep making more features, my page was going to look really cluttered. I thought of adding another sidebar but decided against it. I instead made two buttons under the sidebar and grouped all my apps into two. So, when the current group is active, the other app icons are hidden, and by clicking the next button you can see the next group of apps. This is your reminder that you can make art with anything- even with a limited colour palette. So why not make it on my webOS? If you want more options, I just added an opacity slider and an option to choose your own colours."}, {"post_id": 12411, "ts": "2026-06-20T08:01:12Z", "hours": 0.9375, "text": "So this project is finally ready to ship. Sorry for the formatting on the last devlog, I didn’t realize they added Markdown. I’m sure that must have been a nightmare to read through! What I Did (Final Touches) I felt the buttons could use some pizzaz so I changed the background to black, the text and the border to orange. It looks so much better! Check out the calculator, it looks amazing now. Finally, I added a small animated pixel sprite on the bottom right of the screen. This sprite is just pure randomness personified. I had so much fun picking it out. — I created my GitHub repo and edited my README to look a little better. When I generated the link for my webpage on GitHub Pages, my top bar was cut off!?!? At that point, I was genuinely so frustrated. It wouldn’t fix no matter what I tried. In the end, I just generated a new link and it somehow showed up!? How? Great question, I have no idea. I’m so glad I finally finished this OS! I never got around to thinking of a name so it’s just gonna stay as Cyber-OS lol. I really never thought I would be able to make this, even when I started with the mission. I’m glad I stuck to it. Thanks for following along with me! Go check my OS out yourselves! Cheers!"}, {"post_id": 11343, "ts": "2026-06-18T15:37:20Z", "hours": 4.7439, "text": "What I’m Making : A custom web-based OS that I’ve taken to calling Cyber OS (cool name pending) What I’ve Done so Far: –So today might not have been the most productive day in creating something new per say. A lot of my time was spent refining features already available. Case in point, today I 1) Changed the content of one of my applications from interesting proses to words instead. I do maintain a list of obscure words, so it was really fun to pick which ones made the cut 2) I changed the canvas of my painting application from black to white and muted the colors available to fit my theme more. 3) I fixed an error in my calculator that involved exponents. I also changed the display to be slightly more neater. 4) I created an application to alter display settings. Most of the filters available are inspired from those old televisions, those really chunky cathode ray ones. I didn’t quite do it justice though I do think I might ship this as an initial version when I get the time. Not really sure about it, I’m really indecisive. Anyways, here’s the customary progress pic!"}, {"post_id": 10067, "ts": "2026-06-16T17:26:06Z", "hours": 4.5239, "text": "What I’m making -So I’m actively working on a custom built OS that I’ve been calling Cyber OS because I can’t think of a great name yet. I plan to make applications?/windows? for my hobbies, which are pretty wide ranging. From art to math to literature, the goal is to have something for everyone. What I’ve done -Quick recap, I made an information window, drew the background, and made a scalable code for closing and dragging windows. I then created my first app that is a small archive of phrases that I came across while reading that I particularly liked. -Update time! I made an application for drawing. It has eight colors, undo and redo buttons and a feature to change the brush size. What I struggled with -This time I had more of an issue making the code by myself. Most of the time was spent debugging tbh. I had a really major issue with the colors not showing up on the canvas. It was really a learning experience fixing that. I also realized that the brush slider just made my entire window move. So I changed it to an number input based thing. I ran into a few issues with the slider too, but managed to solve it relatively quicker. All in all, I’m really proud of all the progress I made. Cheers!"}, {"post_id": 8643, "ts": "2026-06-14T11:25:49Z", "hours": 6.5003, "text": "What I’m Making -A web-based OS that I’m calling Cyber OS currently. I’m a person with really diverse interests, so I’m creating something that will hopefully spark your interest too. What I’ve Done -Major style updates -Drew an app icon -made a draggable and closable window -connected the app and the window -created hover effects for each button -organized my code Next session I’ll probably begin creating the next app. I also want to make a task bar of sorts. Despite doing my best to keep my code clean its really messy rn. I’ll build the app in another file and then bring it over to my OS. Overall a really productive day, but I’m pretty pleased with the results. The progress from my previous logs is really visible. I’m knackered though, so I’m off for the day. Cheers!"}, {"post_id": 8174, "ts": "2026-06-13T16:56:20Z", "hours": 2.3675, "text": "What I’m Making -I’m working on a web-based OS that I’ve been calling Cyber OS (cool name pending) What I’ve added -a top bar -an active clock -a draggable and closable information button What I struggled with -I made a few mistakes with naming variables, which took me a lot longer to identify that it should have. -I couldn’t figure out why my page was a little larger than my screen. I kept having to scroll. I deleted a few lines of formatting and re-wrote it. Didn’t really work out. A second of googling later, I found out about the overflow button?/function? Phew. That was a relief. Cheers!"}, {"post_id": 8062, "ts": "2026-06-13T13:49:52Z", "hours": 1.0553, "text": "What I’m making: -I’m working on a Web-OS that I’ve named Cyber OS. What I’ve done so far -I created the welcome box and stylized it -Drew a wallpaper for the background What I struggled with -Mainly I had a bit of an issue with Github, because I couldn’t figure out why my time wasn’t logging when I was coding in an active workspace. Eventually I decided to copy the code I wrote to my VS editor and upload the project in Github later. I did loose around half an hour but uk….you do what you must."}]...
|
Title: Cyber OS by @Ann_with_an_e | Stardance
Dev Title: Cyber OS by @Ann_with_an_e | Stardance
Devlogs:
What I’m making: -I’m working on a Web-OS that I’ve named Cyber OS. What I’ve done so far -I created the welcome box and stylized it -Drew a wallpaper for the background What I struggled with -Mainly I had a bit of an issue with Github, because I couldn’t figure out why my time wasn’t logging when I was coding in an active workspace. Eventually I decided to copy the code I wrote to my VS editor and upload the project in Github later. I did loose around half an hour but uk….you do what you must.
What I’m Making -I’m working on a web-based OS that I’ve been calling Cyber OS (cool name pending) What I’ve added -a top bar -an active clock -a draggable and closable information button What I struggled with -I made a few mistakes with naming variables, which took me a lot longer to identify that it should have. -I couldn’t figure out why my page was a little larger than my screen. I kept having to scroll. I deleted a few lines of formatting and re-wrote it. Didn’t really work out. A second of googling later, I found out about the overflow button?/function? Phew. That was a relief. Cheers!
What I’m Making -A web-based OS that I’m calling Cyber OS currently. I’m a person with really diverse interests, so I’m creating something that will hopefully spark your interest too. What I’ve Done -Major style updates -Drew an app icon -made a draggable and closable window -connected the app and the window -created hover effects for each button -organized my code Next session I’ll probably begin creating the next app. I also want to make a task bar of sorts. Despite doing my best to keep my code clean its really messy rn. I’ll build the app in another file and then bring it over to my OS. Overall a really productive day, but I’m pretty pleased with the results. The progress from my previous logs is really visible. I’m knackered though, so I’m off for the day. Cheers!
What I’m making -So I’m actively working on a custom built OS that I’ve been calling Cyber OS because I can’t think of a great name yet. I plan to make applications?/windows? for my hobbies, which are pretty wide ranging. From art to math to literature, the goal is to have something for everyone. What I’ve done -Quick recap, I made an information window, drew the background, and made a scalable code for closing and dragging windows. I then created my first app that is a small archive of phrases that I came across while reading that I particularly liked. -Update time! I made an application for drawing. It has eight colors, undo and redo buttons and a feature to change the brush size. What I struggled with -This time I had more of an issue making the code by myself. Most of the time was spent debugging tbh. I had a really major issue with the colors not showing up on the canvas. It was really a learning experience fixing that. I also realized that the brush slider just made my entire window move. So I changed it to an number input based thing. I ran into a few issues with the slider too, but managed to solve it relatively quicker. All in all, I’m really proud of all the progress I made. Cheers!
What I’m Making : A custom web-based OS that I’ve taken to calling Cyber OS (cool name pending) What I’ve Done so Far: –So today might not have been the most productive day in creating something new per say. A lot of my time was spent refining features already available. Case in point, today I 1) Changed the content of one of my applications from interesting proses to words instead. I do maintain a list of obscure words, so it was really fun to pick which ones made the cut 2) I changed the canvas of my painting application from black to white and muted the colors available to fit my theme more. 3) I fixed an error in my calculator that involved exponents. I also changed the display to be slightly more neater. 4) I created an application to alter display settings. Most of the filters available are inspired from those old televisions, those really chunky cathode ray ones. I didn’t quite do it justice though I do think I might ship this as an initial version when I get the time. Not really sure about it, I’m really indecisive. Anyways, here’s the customary progress pic!
So this project is finally ready to ship. Sorry for the formatting on the last devlog, I didn’t realize they added Markdown. I’m sure that must have been a nightmare to read through! What I Did (Final Touches) I felt the buttons could use some pizzaz so I changed the background to black, the text and the border to orange. It looks so much better! Check out the calculator, it looks amazing now. Finally, I added a small animated pixel sprite on the bottom right of the screen. This sprite is just pure randomness personified. I had so much fun picking it out. — I created my GitHub repo and edited my README to look a little better. When I generated the link for my webpage on GitHub Pages, my top bar was cut off!?!? At that point, I was genuinely so frustrated. It wouldn’t fix no matter what I tried. In the end, I just generated a new link and it somehow showed up!? How? Great question, I have no idea. I’m so glad I finally finished this OS! I never got around to thinking of a name so it’s just gonna stay as Cyber-OS lol. I really never thought I would be able to make this, even when I started with the mission. I’m glad I stuck to it. Thanks for following along with me! Go check my OS out yourselves! Cheers!
What I added: I really wanted to make a music player next, so that’s what I set upon making. I already knew that I wanted to make it look like an iPod. This app now can mute, skip to songs on the playlist, show you the menu and pause. It will also play on the background while the app is both open or closed until the song is over. Next up is a POST-IT app. It create multiple post its, change colours and has multiple formatting options. This was even more fun to make than the music player lol. My icon accidently hides behind the ipod icon, so I do need to fix that. Its pretty straightforward but I feel to lazy rn. I realized that if I were to keep making more features, my page was going to look really cluttered. I thought of adding another sidebar but decided against it. I instead made two buttons under the sidebar and grouped all my apps into two. So, when the current group is active, the other app icons are hidden, and by clicking the next button you can see the next group of apps. This is your reminder that you can make art with anything- even with a limited colour palette. So why not make it on my webOS? If you want more options, I just added an opacity slider and an option to choose your own colours.
So first of all, I got my payout! Thank you so much to everyone who voted and gave me feedback. All your suggestions were really great and I’ve started to fix some of the bugs you guys found. I would have probably not have found out about the zooming thing because I never zoom in lol. What I Added So, I added a task manager. It’s basically a to-do list, where you can list the stuff you need to get done and check the box once it is. Initially it was just a button the hid itself. Out of curiosity I googled and found out there is a way to add a checkbox! You make an input element and give it the type “checkbox”. I rewrote my code to add that. Then I made a stopwatch and timer thing. The js felt really hard to write, so I asked a friend for help and she basically guided and explained the logic to me. The timer style was modelled of that of my phone, which meant you needed to scroll to set the time. But the scrolling was interpreted as dragging by my dragging code, so I needed a fix. Right now, you need to click on the text and press the arrow keys to navigate it. I understand that it might not be very intuitive, so I added a pop-up warning. I also added a few more tracks to my song app along with a scroll bar. I implemented some suggestions from the reviews, like making the window offset at the centre instead of the top left and it has made such a difference. I also understood I was repeating myself a lot in the code as someone pointed out. I’m trying my best to be mindful and code effectively now! In the interest of transparency, I was making a weather app that could check your weather. I ran into a lot of issues on the first half itself. I spent a lot of time trying to fix it. At one point, it messed up all my other code, so I had to delete it. At least an hour or three was wasted in that. I feel like it’s a bit unfair of me to count that so I’ll turn off my tracker the next time I code. Idk, it just makes me feel like I’m cheating to count those hours when nothing really came out of it. Anyways, here’s the progress pic!
What I Added I added a third slide to my sidebar, which means we get a new group of apps! With context to my last post about practicing DRY, I decided to parse through my code to see how much I could cut down. There was so much! I was under-using my classes so much, its crazy. Or so many places I didn’t make a class at all and just copy-pasted the styles on the buttons. I did my level best to fix all of that without breaking anything. My code looks much better now. Thanks for the tip, random reviewer I do not know-I finally saw the light lol. I made an app to place filters on images! Right now there’s a B&W filter and two toned filter the user can choose. There’s also an info button on the header if there’s any confusion. I feel like I’ll be adding that info button in a few more places. I also made a calendar. Okay, I’m going to vent here a little, feel free to scroll. This is mostly abt all the issues I ran into while coding-and all of it is very dumb. I learnt that I apparently didn’t know that its calendar not calender. Also I switch between American and British English a lot, so my html and js did NOT match in their spelling of “grey”. Istg, I make my own life harder at times. In the same vein, a similar naming mishap caused my js to break- it was at the end of the file, and hidden enough that its not visible while using. When I wrote the code for my calendar it didn’t work. I thought I made a mistake. I spent so much time rewriting, googling, getting frustrated. A lot of places it mentioned maybe the script wasn’t being defered properly. I was like nope, everything else works fine. I put the logic into the html script, it worked. I thought it was a mistake in the punctuation or indent and left it at that. Later in the day when I returned to make another app, it obviously did not work- I went through the same cycle. This time I was stubborn and didn’t want to put it in the html. I literally exhausted all possible options until I realized I could just check the console. There I did find an error, not in my calendar code, not in the app I was making, but in the filter app. I went through the five stages of grief in that second lol. I have no idea why I spelled grey differently. There should be a spellcheck while coding too. English is not my native language, so it could be a bit excusable, but I feel so dumb rn. You live and learn ig.
What I Added I think this might just be my best app yet. I created an app called Terminal, which is a ripoff PowerShell. I had so much fun making it! There are multiple commands, some which run an animation, and others that perform simple tasks. When I was done with Terminal, I saw that I had exactly 11 apps. Which is a great number, don’t get me wrong, but I wanted an even twelve. Hence-Comms. My final app. You need a password to access it. Where you may get the password? That’s up to you to click around and find out. If you’re curious enough to know what it is, but not enough to explore, I’ll put it in my READMe when I ship this! Because I do want everyone to be able to use all applications, if you don’t feel like a treasure hunt. It’s a pretty cool app that you miiighht need if you want to access another window. I added another button on the Top Bar. It opens up a window, that may or may not be related to Comms. Be warned, it probably might tell you exactly what Comms is but not how to access it. This window allows you to use whatever you find in Comms to good use! I also made the two-tone filter update while you choose the colours. I also discovered the Go Live extension, which has worked wonders for both my refresh button and my console, which kept showing me the phrase unsafe URL for every image I loaded. I’m glad it finally found peace in its security
What I added Okay, you guys; this might just be the most complete this project has ever been. I only did minor additions here, so here goes- I made add the buttons with text on them hover uniformly. Its slightly superficial, but I just wanted them to be uniform. I added information buttons on the header for certain apps that might have quirks or be un-intuitive to navigate. Tbh I copied the code for my first information button pop-up and just added a different letter in front of it. I also added wallpapers! You now have six wallpapers to choose from. Initially I wanted to draw all of them. The default background I drew btw, but I just don’t have the time for it rn, so maybe in the future. So someone reviewed and told me my project doesn’t work in comet. I didn’t really know what comet was until I looked it up. There are a lot of differing opinions on what it could have been, so I have no clue. If someone has any idea, do reach out. Finally, I organized my html. Its strange to see how many comments I made towards the beginning, telling exactly what a div did. I was really unfamiliar with making page of that size, even if it wasn’t much. This time I didn’t go overboard in commenting and organising it I don’t have git so now I need to update my files on github, and edit the README. Once that’s done, its time to ship! Super excited for that
Ships:
#Overview Cyber OS is a web based OS that is interactive with multiple draggable and closable windows. It has a hand-drawn background with a unique color palette inspired from cyberpunk and old CRT monitors. #Applications -Archive of Words: An application that introduces you to the most obscure words English has to offer. Have you ever wanted to win a crossword by knowing an eight letter word for theft? Well, here’s your chance! -Painterly: A standard painting application with a small twist- a pure black canvas and colors catered specifically for contrast without looking overwhelming. It also features a brush size changer, undo and redo buttons -Calculator: Your standard run-of-the-mill application for basic arithmetic computations -Display Settings: Distinct display settings meant to mimic the look of an old school CRT monitor. They can also be turned off, if they are not to the users’ liking. -Desktop Companion: An animated pixel sprite at the bottom right that keeps you company as you go about your work. _ I honestly found that learning code while actively creating a project was so much more enjoyable. I ran into so many hurdles, especially with the js code, from formatting to naming mishaps. I did learn more from making those mistakes than just knowing about them. I did want to create a few more interesting applications, but I need to learn a bit more before trying them. Keep an eye out! I’m incredibly proud of how this turned out. And I hope you’ll love it too! Cheers!
What I made: Cyber OS is an interactive, web-based OS. It has multiple applications, with closable, draggable windows with a z-index. There are roughly twelve applications in total, not counting the ones on the top bar. While I would love to ramble about all my applications, here are the ones I’m most proud of! In-Filter-Traitor: An application that filters your photos to either black and white, or a two-toned image that you can choose the shadows and highlights of! Ever felt your photos could benefit from a few more Gotham vibes? Never? Well, that’s disappointing. POST-IT: A virtual sticky note! I really love it mostly due to the design that may or may not have been a direct rip-off from the app in windows. It’s silly, but I’m happy that I managed to recreate it. Terminal: It lets you control the OS by practicing the ancient art of typing orange runes into a dark void. If you don’t know what to type, the void will inform you. Easter Egg! It just occurred to me that I may be overhyping this. Anyway, this is how it works- on the last slide of the sidebar there is an app called Comms. You will not be able to access it without a password. The password is hidden somewhere within the OS. There’s a window called Developer Logs that might tell you what Comms does, but not the password. If you’re short of time, or not up for a treasure hunt, the password is in my README with a spoiler warning! Also tell me if my hiding place was too obvious lol. Feeling Lost? Something not working? Please go through the README, I do think it covers most of the quirks you might encounter. Any application that’s un-intuitive has ⓘ. If you’re confused, click on it! If its anything that isn’t covered between the two, tell me! I’ll make sure to fix it up. What I’m proud of This took me so much time to make. I’m really proud that I managed to do this regularly between school, classes and competitions. I’m really bad at time management so this is a huge win for me! I’m also really proud of the fact that I’m able to debug stuff myself now a bit more. Before I needed to constantly google why my console was showing up an error, and how to fix it. Now I can somewhat understand why my code glitched, and the steps I can take to remedy it. I had so much fun making this, and now I’m going to be slightly lost now lol. But anyway, I put a lot of heart into this project, and I really hope that its visible! Thank you all for following along!...
|
1792990575.4397113
|
1793076975.4397113
|
|
21308
|
NihonGo! by @Manenti | Stardance
|
Manenti
|
1
|
39.64
|
654
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-11T19:25:19Z", "hours": 39.0, "multiplier": 17.16, "payout": 654, "blessing": "neutral", "text": "NihonGo! I made NihonGo! , a full-stack Japanese learning platform for English speakers. It includes structured lessons, interactive exercises, progress tracking, authentication, and a flashcard system where users can create decks, add cards, and practice vocabulary or writing systems like hiragana, katakana, and kanji. The most challenging part was connecting all the pieces together into a real deployed app: the React frontend, Express backend, PostgreSQL database, migrations, seed data, authentication, CORS, rate limits, and Render deployment. I also had to think carefully about how learners move through the app, so it feels like a study tool instead of just a collection of pages. I’m proud that NihonGo! is not only a UI mockup, but a working full-stack project with user accounts, saved progress, lessons, exercises, and flashcards. I’m also proud of improving the project structure, documentation, deployment setup, and overall polish so it feels more complete and usable. To test the project, create a new account or log in, then explore the dashboard, modules, lessons, trainer, and flashcards pages. The app may take a few seconds to respond the first time because the backend is hosted on Render’s free tier and can spin down when inactive.", "repo": "https://github.com/noname697/NihonGo", "demo": "https://nihon-go-jp.vercel.app"}]...
|
[{"post_id": 27337, "ts": "202 [{"post_id": 27337, "ts": "2026-07-12T20:30:08Z", "hours": 0.64, "text": "Devlog: Fixing the Deployment After submitting NihonGo!, I found out that Render was not an accepted deployment option for this project. I also realized that Render’s free tier can put services to sleep after periods of inactivity, which is not ideal for a project that reviewers and users need to test reliably. To fix this, I migrated the deployment away from Render: Moved the frontend deployment to Vercel Moved the backend API deployment to Vercel Switched the production database to Neon PostgreSQL Updated the frontend environment variable to point to the new Vercel backend Updated the backend CORS settings to allow the new Vercel frontend URL Fixed the backend serverless deployment configuration for Vercel Added the PostgreSQL dialect module explicitly so Sequelize works correctly in Vercel’s serverless environment Re-ran the production migrations and seeders on the new database Tested account registration and the main app flow again after the migration The main reason for this change was reliability. Since Render can make free services inactive when there is no traffic for a while, the app could appear broken or slow when someone tries to test it later. Moving the app to Vercel and Neon makes the project easier to access, test, and review. The new deployment is now working correctly, with the frontend, backend, database, authentication, and CORS all connected again."}, {"post_id": 26768, "ts": "2026-07-11T19:17:43Z", "hours": 2.5694, "text": "Since the last devlog, I focused on preparing NihonGo! for a more complete public release. I expanded the learning content with new seeders for more hiragana, katakana, N5 kanji, and beginner lessons covering particles like を , に , の , questions with か , and polite ます verbs. I also added backend tests with Jest and Supertest to validate the API health check, protected dashboard routes, and unknown route handling. On the frontend, I repolished the landing page to better present the app as a full Japanese learning platform, with clearer calls to action, feature highlights, preview stats, and a stronger visual identity. I also added a custom favicon and included a preview GIF so the project feels more complete and presentable from the first visit. Finally, I prepared the project for deployment: I configured the backend for production PostgreSQL over SSL, added the proper start/test scripts and dependencies, consolidated the documentation into a full project README, and published the live demo on Render at nihongo-udug.onrender.com . With this, NihonGo! now has content, documentation, tests, production configuration, and a working public deployment."}, {"post_id": 26265, "ts": "2026-07-10T23:16:21Z", "hours": 4.7308, "text": "Since the last devlog, I focused on making the dashboard more complete and data-driven. On the backend, I refactored the dashboard service and presenter, expanded the statistics service to return quick stats, daily goal progress, and recent activity, adjusted progress handling, added a migration for renamed character progress columns, cleaned up unused code, and updated the API docs. On the frontend, I connected the new dashboard data to polished cards for Daily Goal, Recent Activity, Recommended Lessons, and Quick Stats. I also improved module/exercise UI details, cleaned up duplicated or unused components, fixed naming and lint issues, and made small page-level adjustments across the app. I also expanded the Flashcards feature into a fuller management flow: fetching deck details, editing and deleting decks, editing and deleting cards, refreshing due cards and progress after actions, and resolving warnings around the page state. This makes flashcards feel much closer to a complete study tool rather than just a basic review screen."}, {"post_id": 25079, "ts": "2026-07-09T01:35:53Z", "hours": 5.7917, "text": "Today I expanded NihonGo with new learning flows for practice and review. On the backend, I added the dashboard recommendation feature, connecting lesson progress, quick stats, and recommendations so users can continue unfinished lessons or start the next suggested lesson. On the frontend, I improved the Dashboard with modular cards for continuing learning, daily goals, recent activity, recommendations, and quick stats. I also built the Kana/Kanji Trainer page with filters, progress tracking, random practice, answer submission, and instant feedback. I also implemented the Flashcards experience, including deck creation, card creation, due-card review, answer reveal, and progress tracking. Finally, I cleaned up page exports/routes and fixed integration bugs across auth, exercises, module details, and flashcard behavior."}, {"post_id": 23838, "ts": "2026-07-07T00:42:42Z", "hours": 3.1194, "text": "Since the last update, I shifted the backend toward a clearer screen-driven architecture by introducing dedicated screen services and presenters. This included the first lesson screen flow, with a new lesson endpoint and controller designed to return lesson content in a frontend-friendly shape. I also prepared the presentation layer to merge lesson data with user progress details, setting up cleaner contracts between API and UI. I then expanded the dashboard API with a v2 response format focused on frontend consumption. The dashboard service now aggregates the user’s latest studied lesson plus quick stats in one place, and maps them into a structured payload for cards like Continue Learning, Lessons Completed, Exercise Accuracy, Characters Mastered, and Flashcards Reviewed. This makes the home experience more actionable and reduces data assembly work on the client side. To support this, I improved backend organization by separating domain services from screen services and updating controllers to use the new structure. I also added supporting progress/statistics functions to centralize calculations and keep business logic out of route handlers. Overall, this sprint was about making the backend more scalable, consistent, and aligned with the next frontend iterations."}, {"post_id": 21876, "ts": "2026-07-04T01:29:52Z", "hours": 2.8131, "text": "Since the last update, I pushed NihonGo! into the actual learning flow instead of just the dashboard. The modules page now pulls real progress data from the backend and presents each JLPT module as a clickable card, with loading, error, and empty states to make the experience feel complete and stable. I also added dedicated module and lesson detail pages. Module pages now show overall completion and the full list of lessons, while lesson pages display the explanation content together with exercise previews, making the study journey feel much more structured. To keep everything consistent, I introduced reusable UI pieces like page headers, badges, empty states, and lesson/exercise cards."}, {"post_id": 21666, "ts": "2026-07-03T19:03:29Z", "hours": 2.4261, "text": "I moved the front-end from setup mode into a real product experience by building the first complete dashboard screen for NihonGo! . The dashboard now loads live summary data from the API , greets the user, shows their current study progress, and highlights what they should continue next. I also added proper loading and error states so the page feels stable instead of empty. To support that, I created a small set of reusable UI pieces like cards , stat blocks , and a progress bar , which made the interface much easier to structure and keep consistent. With that in place, the front-end now feels like the beginning of a full learning platform instead of just a shell around the authentication flow."}, {"post_id": 20419, "ts": "2026-07-02T00:41:54Z", "hours": 3.1839, "text": "I started turning NihonGo! into a real frontend app by setting up the main routing structure and global providers for authentication and theme control. That gave the project a proper foundation, with protected routes for the learning area and a shared app layout that keeps navigation consistent across the site. From there, I built the first visible pieces of the interface: a landing page, a styled auth layout, and a functional login screen. I also added reusable form components, API error handling, and session logic so the frontend can talk to the backend, keep users logged in, and send them to the dashboard when authentication succeeds."}, {"post_id": 18824, "ts": "2026-06-30T00:57:08Z", "hours": 1.8339, "text": "Since the last update, I worked on the backend’s security and request-handling layer. I added validation schemas with Zod across the main routes, including auth, progress, trainer, and flashcards, so the API now validates params, query strings, and request bodies more consistently. I also improved the app structure with a rate limiter, a not-found middleware, and stronger error handling for validation and database issues. On top of that, I added CORS configuration and request logging with Morgan in development. This was also my first time using both Zod and Morgan , so this update was useful for learning how to structure validation and logging in a more organized way."}, {"post_id": 18589, "ts": "2026-06-29T19:39:02Z", "hours": 2.5708, "text": "Since the last update, I added a dashboard layer that brings together the main learning data in one place. The backend now exposes a dashboard summary route that aggregates progress across lessons, exercises, trainer characters, and flashcards, along with recent activity for each area. I also kept improving the flashcards flow by fixing the due-cards logic and adding example flashcard seed data. The app now includes the new dashboard routes, so the API is starting to feel more complete and connected across all study features."}, {"post_id": 17799, "ts": "2026-06-28T18:44:40Z", "hours": 2.0806, "text": "Since the last update, I implemented a complete Flashcards module end-to-end. This included new database migrations and models for decks, cards, and card reviews, plus the associations needed to connect users, decks, and review history. I also finished the full MVC flow for flashcards: Deck management ( create , list , view , update , delete ). Card management inside decks ( create , update , delete ). Review flow with due cards and answer submission. Review progress endpoint for tracking performance over time. On the logic side, I added mastery score calculation and a spaced-review style due-date strategy based on correct and wrong attempts. I also fixed integration issues from this cycle, including model naming, async promise handling, and boolean behavior in requests."}, {"post_id": 16609, "ts": "2026-06-27T00:43:37Z", "hours": 2.2261, "text": "Since the last devlog, I added the trainer system for study characters. The backend now supports listing characters, fetching random practice sets, submitting character answers, and tracking each user’s trainer progress . I also seeded the first batch of hiragana , katakana , and a few kanji so the trainer has real content to work with. On top of that, I wired the new trainer and progress routes into the app and fixed a few implementation issues around model names, async handling, and boolean values."}, {"post_id": 15208, "ts": "2026-06-24T18:32:51Z", "hours": 1.7694, "text": "Since the last devlog, I added the first version of the progress layer for users. The new service now tracks exercise submissions, lesson progress, and module progress, so the backend can calculate completion and score instead of only serving content. I also adjusted the models and associations to support that progress data, and fixed some import/export and naming issues along the way. The app is moving from content delivery to actual study tracking, which is the main step forward in this update."}, {"post_id": 13306, "ts": "2026-06-21T19:43:49Z", "hours": 1.1961, "text": "Since the last update, I finished the first full content layer of the backend. I added a content service that can fetch modules, individual modules with their lessons, lessons with their parent module, and lesson exercises with answer options. This turned the database schema into something the API can actually serve. I also created the content controller and routes, then mounted them in the main app under /api/content . At the same time, I added an initial content seeder to populate the database with JLPT module data, lessons, exercises, and multiple-choice options so the API has real content to work with right away. After that, I fixed a few integration issues, including import/export problems and some attribute name typos, so the content queries and models line up correctly. The backend is now in a much better state: authentication is in place, content endpoints are wired, and the database can be seeded with starter learning material."}, {"post_id": 12812, "ts": "2026-06-20T23:34:58Z", "hours": 0.7633, "text": "Since the last update, I expanded the backend schema beyond authentication and started modeling the learning content structure of NihonGo. I added the core Sequelize models for course modules, lessons, exercises, and exercise options, along with the relationships between them so the content can be loaded in a structured way. The project now supports a full content hierarchy: modules contain lessons, lessons contain exercises, and exercises can contain multiple answer options. I also kept the user model in place for authentication, with roles already prepared for future access control. On the database side, I created and ran the migrations needed to make these tables available in PostgreSQL. The schema is now in a usable state for starting content seeding and API endpoints for lessons and exercises."}, {"post_id": 12764, "ts": "2026-06-20T21:30:02Z", "hours": 0.8664, "text": "Since the last update, I focused on turning the backend into a real authentication API . I created the User model and its migration, then added the auth service layer to handle registration and login logic. I also built a token utility with JWT so authenticated users can receive access tokens after signing in. On top of that, I added an auth controller, auth routes, and a global error middleware to keep the API responses consistent. The main app was updated to use the new auth routes and the error handler, and the Sequelize setup was adjusted to load the shared config correctly."}, {"post_id": 12739, "ts": "2026-06-20T20:34:15Z", "hours": 1.0964, "text": "Set up the backend project and installed the dependencies. Added the main scripts for development, start, migrations, and seeders with sequelize-CLI. Built the Express app with cors , helmet , and JSON parsing enabled. Configured the server entry point to load environment variables and start the app on the chosen port. Created environment-based database configuration for development, test, and production. Adjusted Sequelize paths so the CLI can find the config, models, migrations, and seeders correctly."}]...
|
Title: NihonGo! by @Manenti | Stardance
Devlogs:
Title: NihonGo! by @Manenti | Stardance
Devlogs:
Set up the backend project and installed the dependencies. Added the main scripts for development, start, migrations, and seeders with sequelize-CLI. Built the Express app with cors , helmet , and JSON parsing enabled. Configured the server entry point to load environment variables and start the app on the chosen port. Created environment-based database configuration for development, test, and production. Adjusted Sequelize paths so the CLI can find the config, models, migrations, and seeders correctly.
Since the last update, I focused on turning the backend into a real authentication API . I created the User model and its migration, then added the auth service layer to handle registration and login logic. I also built a token utility with JWT so authenticated users can receive access tokens after signing in. On top of that, I added an auth controller, auth routes, and a global error middleware to keep the API responses consistent. The main app was updated to use the new auth routes and the error handler, and the Sequelize setup was adjusted to load the shared config correctly.
Since the last update, I expanded the backend schema beyond authentication and started modeling the learning content structure of NihonGo. I added the core Sequelize models for course modules, lessons, exercises, and exercise options, along with the relationships between them so the content can be loaded in a structured way. The project now supports a full content hierarchy: modules contain lessons, lessons contain exercises, and exercises can contain multiple answer options. I also kept the user model in place for authentication, with roles already prepared for future access control. On the database side, I created and ran the migrations needed to make these tables available in PostgreSQL. The schema is now in a usable state for starting content seeding and API endpoints for lessons and exercises.
Since the last update, I finished the first full content layer of the backend. I added a content service that can fetch modules, individual modules with their lessons, lessons with their parent module, and lesson exercises with answer options. This turned the database schema into something the API can actually serve. I also created the content controller and routes, then mounted them in the main app under /api/content . At the same time, I added an initial content seeder to populate the database with JLPT module data, lessons, exercises, and multiple-choice options so the API has real content to work with right away. After that, I fixed a few integration issues, including import/export problems and some attribute name typos, so the content queries and models line up correctly. The backend is now in a much better state: authentication is in place, content endpoints are wired, and the database can be seeded with starter learning material.
Since the last devlog, I added the first version of the progress layer for users. The new service now tracks exercise submissions, lesson progress, and module progress, so the backend can calculate completion and score instead of only serving content. I also adjusted the models and associations to support that progress data, and fixed some import/export and naming issues along the way. The app is moving from content delivery to actual study tracking, which is the main step forward in this update.
Since the last devlog, I added the trainer system for study characters. The backend now supports listing characters, fetching random practice sets, submitting character answers, and tracking each user’s trainer progress . I also seeded the first batch of hiragana , katakana , and a few kanji so the trainer has real content to work with. On top of that, I wired the new trainer and progress routes into the app and fixed a few implementation issues around model names, async handling, and boolean values.
Since the last update, I implemented a complete Flashcards module end-to-end. This included new database migrations and models for decks, cards, and card reviews, plus the associations needed to connect users, decks, and review history. I also finished the full MVC flow for flashcards: Deck management ( create , list , view , update , delete ). Card management inside decks ( create , update , delete ). Review flow with due cards and answer submission. Review progress endpoint for tracking performance over time. On the logic side, I added mastery score calculation and a spaced-review style due-date strategy based on correct and wrong attempts. I also fixed integration issues from this cycle, including model naming, async promise handling, and boolean behavior in requests.
Since the last update, I added a dashboard layer that brings together the main learning data in one place. The backend now exposes a dashboard summary route that aggregates progress across lessons, exercises, trainer characters, and flashcards, along with recent activity for each area. I also kept improving the flashcards flow by fixing the due-cards logic and adding example flashcard seed data. The app now includes the new dashboard routes, so the API is starting to feel more complete and connected across all study features.
Since the last update, I worked on the backend’s security and request-handling layer. I added validation schemas with Zod across the main routes, including auth, progress, trainer, and flashcards, so the API now validates params, query strings, and request bodies more consistently. I also improved the app structure with a rate limiter, a not-found middleware, and stronger error handling for validation and database issues. On top of that, I added CORS configuration and request logging with Morgan in development. This was also my first time using both Zod and Morgan , so this update was useful for learning how to structure validation and logging in a more organized way.
I started turning NihonGo! into a real frontend app by setting up the main routing structure and global providers for authentication and theme control. That gave the project a proper foundation, with protected routes for the learning area and a shared app layout that keeps navigation consistent across the site. From there, I built the first visible pieces of the interface: a landing page, a styled auth layout, and a functional login screen. I also added reusable form components, API error handling, and session logic so the frontend can talk to the backend, keep users logged in, and send them to the dashboard when authentication succeeds.
I moved the front-end from setup mode into a real product experience by building the first complete dashboard screen for NihonGo! . The dashboard now loads live summary data from the API , greets the user, shows their current study progress, and highlights what they should continue next. I also added proper loading and error states so the page feels stable instead of empty. To support that, I created a small set of reusable UI pieces like cards , stat blocks , and a progress bar , which made the interface much easier to structure and keep consistent. With that in place, the front-end now feels like the beginning of a full learning platform instead of just a shell around the authentication flow.
Since the last update, I pushed NihonGo! into the actual learning flow instead of just the dashboard. The modules page now pulls real progress data from the backend and presents each JLPT module as a clickable card, with loading, error, and empty states to make the experience feel complete and stable. I also added dedicated module and lesson detail pages. Module pages now show overall completion and the full list of lessons, while lesson pages display the explanation content together with exercise previews, making the study journey feel much more structured. To keep everything consistent, I introduced reusable UI pieces like page headers, badges, empty states, and lesson/exercise cards.
Since the last update, I shifted the backend toward a clearer screen-driven architecture by introducing dedicated screen services and presenters. This included the first lesson screen flow, with a new lesson endpoint and controller designed to return lesson content in a frontend-friendly shape. I also prepared the presentation layer to merge lesson data with user progress details, setting up cleaner contracts between API and UI. I then expanded the dashboard API with a v2 response format focused on frontend consumption. The dashboard service now aggregates the user’s latest studied lesson plus quick stats in one place, and maps them into a structured payload for cards like Continue Learning, Lessons Completed, Exercise Accuracy, Characters Mastered, and Flashcards Reviewed. This makes the home experience more actionable and reduces data assembly work on the client side. To support this, I improved backend organization by separating domain services from screen services and updating controllers to use the new structure. I also added supporting progress/statistics functions to centralize calculations and keep business logic out of route handlers. Overall, this sprint was about making the backend more scalable, consistent, and aligned with the next frontend iterations.
Today I expanded NihonGo with new learning flows for practice and review. On the backend, I added the dashboard recommendation feature, connecting lesson progress, quick stats, and recommendations so users can continue unfinished lessons or start the next suggested lesson. On the frontend, I improved the Dashboard with modular cards for continuing learning, daily goals, recent activity, recommendations, and quick stats. I also built the Kana/Kanji Trainer page with filters, progress tracking, random practice, answer submission, and instant feedback. I also implemented the Flashcards experience, including deck creation, card creation, due-card review, answer reveal, and progress tracking. Finally, I cleaned up page exports/routes and fixed integration bugs across auth, exercises, module details, and flashcard behavior.
Since the last devlog, I focused on making the dashboard more complete and data-driven. On the backend, I refactored the dashboard service and presenter, expanded the statistics service to return quick stats, daily goal progress, and recent activity, adjusted progress handling, added a migration for renamed character progress columns, cleaned up unused code, and updated the API docs. On the frontend, I connected the new dashboard data to polished cards for Daily Goal, Recent Activity, Recommended Lessons, and Quick Stats. I also improved module/exercise UI details, cleaned up duplicated or unused components, fixed naming and lint issues, and made small page-level adjustments across the app. I also expanded the Flashcards feature into a fuller management flow: fetching deck details, editing and deleting decks, editing and deleting cards, refreshing due cards and progress after actions, and resolving warnings around the page state. This makes flashcards feel much closer to a complete study tool rather than just a basic review screen.
Since the last devlog, I focused on preparing NihonGo! for a more complete public release. I expanded the learning content with new seeders for more hiragana, katakana, N5 kanji, and beginner lessons covering particles like を , に , の , questions with か , and polite ます verbs. I also added backend tests with Jest and Supertest to validate the API health check, protected dashboard routes, and unknown route handling. On the frontend, I repolished the landing page to better present the app as a full Japanese learning platform, with clearer calls to action, feature highlights, preview stats, and a stronger visual identity. I also added a custom favicon and included a preview GIF so the project feels more complete and presentable from the first visit. Finally, I prepared the project for deployment: I configured the backend for production PostgreSQL over SSL, added the proper start/test scripts and dependencies, consolidated the documentation into a full project README, and published the live demo on Render at nihongo-udug.onrender.com . With this, NihonGo! now has content, documentation, tests, production configuration, and a working public deployment.
Devlog: Fixing the Deployment After submitting NihonGo!, I found out that Render was not an accepted deployment option for this project. I also realized that Render’s free tier can put services to sleep after periods of inactivity, which is not ideal for a project that reviewers and users need to test reliably. To fix this, I migrated the deployment away from Render: Moved the frontend deployment to Vercel Moved the backend API deployment to Vercel Switched the production database to Neon PostgreSQL Updated the frontend environment variable to point to the new Vercel backend Updated the backend CORS settings to allow the new Vercel frontend URL Fixed the backend serverless deployment configuration for Vercel Added the PostgreSQL dialect module explicitly so Sequelize works correctly in Vercel’s serverless environment Re-ran the production migrations and seeders on the new database Tested account registration and the main app flow again after the migration The main reason for this change was reliability. Since Render can make free services inactive when there is no traffic for a while, the app could appear broken or slow when someone tries to test it later. Moving the app to Vercel and Neon makes the project easier to access, test, and review. The new deployment is now working correctly, with the frontend, backend, database, authentication, and CORS all connected again.
Ships:
NihonGo! I made NihonGo! , a full-stack Japanese learning platform for English speakers. It includes structured lessons, interactive exercises, progress tracking, authentication, and a flashcard system where users can create decks, add cards, and practice vocabulary or writing systems like hiragana, katakana, and kanji. The most challenging part was connecting all the pieces together into a real deployed app: the React frontend, Express backend, PostgreSQL database, migrations, seed data, authentication, CORS, rate limits, and Render deployment. I also had to think carefully about how learners move through the app, so it feels like a study tool instead of just a collection of pages. I’m proud that NihonGo! is not only a UI mockup, but a working full-stack project with user accounts, saved progress, lessons, exercises, and flashcards. I’m also proud of improving the project structure, documentation, deployment setup, and overall polish so it feels more complete and usable. To test the project, create a new account or log in, then explore the dashboard, modules, lessons, trainer, and flashcards pages. The app may take a few seconds to respond the first time because the backend is hosted on Render’s free tier and can spin down when inactive....
|
1793000939.4007082
|
1793087339.4007082
|
|
48213
|
Level Up by @Lalith | Stardance
|
Lalith
|
4
|
78.0
|
654
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-20T05:23:19Z", "hours": 9.0, "multiplier": 12.16, "payout": 112, "blessing": "neutral", "text": "Shipped LevelUp! It started as a way to make a long self-development video easier to read. Now it has 28 chapters, practical plans, habits, focus timers, and a daily mission system. You can save an idea from a chapter and actually try it instead of forgetting it five minutes later. Milo is the little companion that reacts to your reading and focus activity. Everything important works locally, without an account or trackers. There’s also an offline progress system called Nexus, which handles changes across tabs and lets you move progress using encrypted files. This update mostly brought the different parts together. I fixed mobile layouts, added larger text and a quick tutorial, and made backups include the newer features. Cloud chat still needs work, and the app could be simpler, but the full version is live now. Try it: https://hustlenix.github.io/LevelUp/", "repo": "https://github.com/Hustlenix/LevelUp", "demo": "https://hustlenix.github.io/LevelUp/"}, {"ship_num": 2, "ts": "2026-09-30T12:09:06Z", "hours": 11.0, "multiplier": 9.76, "payout": 103, "blessing": "neutral", "text": "This is my final ship for Level Up. Level Up originally started as a simple idea: turn a 20-hour self-improvement video into something I could actually read, search, understand, and use. It started as basically a local-first book. Over time I kept asking the same question: “How do I make this useful after someone finishes reading?” So I kept rebuilding it. Now Level Up is much closer to a complete self-improvement app. The main experience is built around Today — you open the app, see what you are working toward, get a clear next action, start a focus/study session, and track your progress instead of just consuming more content. I also added Goals, Progress, Study Mode, a daily planner, tutor/coach tools, local AI through Ollama, chapter search, quizzes, streaks, highlights, backups, restore, and a much more consistent UI across the app. The hardest part was making all of this work while keeping the original idea of Level Up: no account required, no cloud database, and your personal progress stays on your device. I had to rebuild a lot of the local state system, handle migrations and corrupted data, improve backup/restore, and make sure the app still works properly offline or without local AI installed. The thing I’m most proud of is that it no longer feels like a book with random features added around it. It finally feels like one connected product. If you test it, don’t just click around. Actually use it: Create a goal Open Today and follow the next action Start a focus/study session Read or study a chapter Check your Progress Refresh/reopen the app and see your data persist There are definitely things I could keep polishing forever, but I don’t want this project to become an endless cycle of “one more redesign.” This is the version I’m calling finished. Try it: https://hustlenix.github.io/LevelUp/ Source: https://github.com/Hustlenix/LevelUp Thanks to everyone who tested it, gave feedback, or followed the devlogs while this went from a small reading website into this. LEVEL UP. 🚀", "repo": "https://github.com/Hustlenix/LevelUp", "demo": "https://hustlenix.github.io/LevelUp/"}, {"ship_num": 3, "ts": "2026-09-20T07:44:58Z", "hours": 18.0, "multiplier": 8.6, "payout": 153, "blessing": "neutral", "text": "I upgraded my MVP called Level Up: transforming a local-first self-development book into a full-featured, Today-first operating system—still running 100% in your browser. The Motivation While Ship #1 proved that a 20-hour video transcript could become a searchable, evidence-graded web book, the feedback was clear: the UI/UX felt fragmented. Having deep individual features wasn’t enough if the home experience didn’t tell you what to do right now. I set out to redesign Level Up from a passive reading interface into an actionable personal operating system. What’s New: The Today-First OS & Local AI Instead of a crowded home screen, the app now centers on a streamlined /today/ hub that answers one core question: “What should I do next?” Today Shell Navigation: Simplified navigation down to Today, Learn, Goals, Progress, and More, placing your current focus front and center. On-Device Study Workspace: Integrated a dedicated Study Mode featuring an automated Daily Planner, a Local Coach, and an interactive Tutor mode to explain or practice any of the 28 chapters. Smart Local AI Integration: Added support for local LLMs via Ollama with full offline fallback, letting you generate study plans and ask questions without leaking private data to external servers. How We Upgraded It Typed Local State Boundary: Replaced fragmented localStorage usage with a single, typed local repository boundary managed via pure TypeScript modules and useSyncExternalStore. Data Diagnostics & Migrations: Hardened JSON schema validation, improved backup/restore transaction handling, and added local data health checks to ensure offline state never gets corrupted. UI/UX Consistency System: Standardized spacing, card hierarchies, buttons, forms, and empty states across all routes so every tool feels like part of a unified product. Into the Trenches (Challenges & Learnings) The Monolith vs. Workspaces Tradeoff: Moving from a multi-tool dashboard to a focused Today-first layout meant rethinking information architecture. We hid creation forms behind empty states and compressed secondary features like inbox items into compact panels to avoid visual clutter. Local AI Fallbacks: Integrating Ollama required explicit status checks and graceful local degradation so non-technical users or fully offline environments still get a clean UI without broken promises. What I’m Proud Of Coherent OS Feel: Level Up no longer feels like separate utilities tacked together; it operates as one smooth, self-contained habit driver. Privacy Preserved: Despite adding AI study tools and custom daily planners, everything remains zero-tracking, zero-backend, and fully functional on-device. Try it out: Live site: https://hustlenix.github.io/LevelUp/ Source code: https://github.com/Hustlenix/LevelUp Tech Stack: Next.js 16, Tailwind v4, TypeScript, node:sqlite, MiniSearch, Ollama / On-Device Local State, GitHub Pages", "repo": "https://github.com/Hustlenix/LevelUp", "demo": "https://hustlenix.github.io/LevelUp/"}, {"ship_num": 4, "ts": "2026-09-11T17:51:26Z", "hours": 40.0, "multiplier": 16.67, "payout": 286, "blessing": "neutral", "text": "I built a free MVP called Level Up : a 28-chapter self-development book built from a 20-hour video transcript, running entirely in your browser. The Motivation It started with a simple question: What if you could turn a 20-hour self-dev video into something you could actually read, search, and verify? Most online self-development content exists to sell courses, not to present evidence. I wanted something honest. So, I built a real book where every notable claim is graded against cited research. What It Is: Zero Tracking, 100% Local The result is roughly 32k words across four pillars, a 30-claim evidence audit (graded A–D/U), 13 testable protocols, and full-text search. The best part? Zero tracking. No accounts, no APIs, no cookies. Your reading progress, streaks, highlights, themes, and quiz scores live entirely in your browser’s localStorage . Nothing leaves your machine. How We Built It The original video transcript was ~20k lines. We tag-teamed Claude, Gemini, and Opencode to compress it. From there, we built the site in layers: The Content Pipeline: scripts/build-data.mjs compiles Markdown chapters into SQLite using node:sqlite , then emits JSON data and a 30KB MiniSearch index. The Frontend: Next.js 16 static export and Tailwind v4. We used useSyncExternalStore for reactive local state via pure TypeScript modules. The Deploy: Automated via GitHub Actions straight to GitHub Pages. Into the Trenches (Challenges & Learnings) The CI Spiral: We added a React 19 QuoteCard. It built flawlessly locally (22/22 tests green), but failed eight consecutive GitHub Actions runs with a phantom TS error. It wasn’t a code bug; it was an environment disagreement. Lesson: Sometimes a feature just isn’t ready. We deleted it rather than fighting the environment or shipping it broken. Turbopack’s Quiet Types: The dev server uses Turbopack, which skips full type-checking for speed. We shipped a PR that built locally but failed in CI. Lesson: Always run tsc locally, or CI will aggressively remind you of the difference between “builds” and “types.” Case Sensitivity: GitHub Pages serves paths case-sensitively. NEXT_PUBLIC_BASE_PATH=/LevelUp is fundamentally different from /levelup . We learned this the hard way. What I’m Proud Of Honest Grading: No invented citations. If a famous “5x flow” stat is folklore, the site tells you so. Backend-less Magic: Search, quizzes, highlights, streaks, and schema-validated JSON backup/restore—all completely offline-capable. The Architecture: The data layer isn’t just a pile of JSON; it’s a statically served, compiled artifact from Markdown. Try it out: Live site: https://hustlenix.github.io/LevelUp/ Source code: https://github.com/Hustlenix/LevelUp Tech Stack: Next.js 16, Tailwind v4, node:sqlite, MiniSearch, GitHub Pages", "repo": "https://github.com/Hustlenix/LevelUp", "demo": "https://hustlenix.github.io/LevelUp/"}]...
|
[{"post_id": 81165, "ts": "202 [{"post_id": 81165, "ts": "2026-10-20T05:15:28Z", "hours": 9.1767, "text": "Finishing touches, i think this is coming to and end, so i lokced in in these 10 hours and did some major changes, like used HCB APi key and give MILO an life so it can interact with you guys, and bumped up the UI/UX to and next level and: Milo Talk with offline guidance and explicit approval before saving suggested actions. Replayable walkthrough and app-wide text sizing up to 150%. Distinct Deep Work/Cyberpunk themes; preserved Light/Dark. Install guidance, offline support, refreshed screenshots, and technical documentation. Fixed Settings headings and Deep Work contrast. As per your reviews and real time feedback, thank you guys!"}, {"post_id": 75526, "ts": "2026-09-30T11:33:39Z", "hours": 8.6486, "text": "I tried making this the final boss of Self Improvement APP, i think i am finally over, longin and start LEVELING UPPP!!!!!!!!!!!"}, {"post_id": 72287, "ts": "2026-09-22T16:18:34Z", "hours": 1.9244, "text": "I think there is nothing to be upgraded in this, all i have to do now is add subscryptions and make money!!!!!!!!!!!!"}, {"post_id": 71049, "ts": "2026-09-20T07:44:31Z", "hours": 0.8897, "text": "I upgraded my MVP called Level Up: transforming a local-first self-development book into a full-featured, Today-first operating system—still running 100% in your browser.The Motivation While Ship #1 proved that a 20-hour video transcript could become a searchable, evidence-graded web book, the feedback was clear: the UI/UX felt fragmented. Having deep individual features wasn’t enough if the home experience didn’t tell you what to do right now. I set out to redesign Level Up from a passive reading interface into an actionable personal operating system.What’s New: The Today-First OS & Local AI Instead of a crowded home screen, the app now centers on a streamlined /today/ hub that answers one core question: “What should I do next?”Today Shell Navigation: Simplified navigation down to Today, Learn, Goals, Progress, and More, placing your current focus front and center.On-Device Study Workspace: Integrated a dedicated Study Mode featuring an automated Daily Planner, a Local Coach, and an interactive Tutor mode to explain or practice any of the 28 chapters.Smart Local AI Integration: Added support for local LLMs via Ollama with full offline fallback, letting you generate study plans and ask questions without leaking private data to external servers.How We Upgraded ItTyped Local State Boundary: Replaced fragmented localStorage usage with a single, typed local repository boundary managed via pure TypeScript modules and useSyncExternalStore.Data Diagnostics & Migrations: Hardened JSON schema validation, improved backup/restore transaction handling, and added local data health checks to ensure offline state never gets corrupted.UI/UX Consistency System: Standardized spacing, card hierarchies, buttons, forms, and empty states across all routes so every tool feels like part of a unified product.Into the Trenches (Challenges & Learnings)The Monolith vs. Workspaces Tradeoff: Moving from a multi-tool dashboard to a focused Today-first layout meant rethinking information architecture. We hid creation forms behind empty states and compressed secondary features like inbox items into compact panels to avoid visual clutter.Local AI Fallbacks: Integrating Ollama required explicit status checks and graceful local degradation so non-technical users or fully offline environments still get a clean UI without broken promises.What I’m Proud OfCoherent OS Feel: Level Up no longer feels like separate utilities tacked together; it operates as one smooth, self-contained habit driver.Privacy Preserved: Despite adding AI study tools and custom daily planners, everything remains zero-tracking, zero-backend, and fully functional on-device.Try it out:Live site: https://hustlenix.github.io/LevelUp/Source code: https://github.com/Hustlenix/LevelUpTech Stack: Next.js 16, Tailwind v4, TypeScript, node:sqlite, MiniSearch, Ollama / On-Device Local State, GitHub Pages"}, {"post_id": 70978, "ts": "2026-09-20T04:38:42Z", "hours": 5.0881, "text": "Till now for my app i have like genrated the overall Backend and front end, but the frontend UI/UX is kinda mid. so i am thinking of improving it and opt for te second ship. In UI/UX i am thinking of doind this: 1. Today-first operating system shell — recommended Make /today/ the clear home of the product. Changes: Simplify navigation to: Today Learn Goals Progress More Make Today answer one question: “What should I do next?” Replace the long stacked Today page with a priority layout: Current goal One next action Start session Progress signal Recovery option Move goal creation into a focused onboarding/empty state instead of displaying a large form immediately. Turn Inbox, patterns, and reminders into compact secondary sections. Keep Goals, Focus, Review, Portfolio, and Roadmap as deep workspaces. Apply the same card, spacing, button, form, and empty-state system across all routes. Keep the existing editorial chapter experience intact. Backend/local-state work: Add a single typed local repository boundary. Harden localStorage validation and migrations. Improve backup/restore transaction handling. Make Ollama status and fallback behavior clearer. Add local data health diagnostics. Preserve offline use. Tradeoff: largest visible improvement, but touches navigation and the main execution surfaces. Editorial workspace polish Keep the existing navigation and route structure, but improve every page individually. Changes: Refine each page’s spacing and hierarchy. Upgrade cards, forms, progress indicators, and empty states. Add shared page headers and breadcrumbs. Improve mobile behavior without changing information architecture. Backend/local-state work remains the same. Tradeoff: lowest risk, but the product may still feel like multiple separate tools rather than one coherent operating system. Dashboard-centric command center Make /dashboard/ the main product and move most functionality into a dense professional workspace. Changes: Dashboard becomes a multi-panel command center. Today, Goals, Focus, Review, and Progress become dashboard tabs or panels. More information is visible at once. Strong for desktop power users. Tradeoff: efficient for experienced users but heavier, more complex, and less approachable on mobile."}, {"post_id": 70451, "ts": "2026-09-19T07:02:36Z", "hours": 8.2389, "text": "I thought to keep this as a normal book website for a 20 hr video, until i didnt i wanted to somehow plan to make money out of this, so I am not planning to improve this to a full App and Add pricing and make money out of it. The app is gonna be about implementing the things for the 20 hr video effectively in my website for a lil $. For now everyone can try it our for free on https://hustlenix.github.io/LevelUp"}, {"post_id": 68897, "ts": "2026-09-16T00:04:43Z", "hours": 1.1653, "text": "Me corrently using my own app to study and finish my home work🤣🤣. Youto use it on https://hustlenix.github.io/LevelUp/ for free"}, {"post_id": 67964, "ts": "2026-09-14T09:11:00Z", "hours": 2.6825, "text": "Instead of making this website feel like a simple website like a book, i am on a mission to make this website a full stack website for self improvement and i am thinking of adding paywall and make some money, but stripe isnt working from INDIA someone please help. STAY HARD!!!!!!!!!!!!!!!"}, {"post_id": 66090, "ts": "2026-09-11T17:47:02Z", "hours": 13.0997, "text": "I built a free MVP called Level Up: a 28-chapter self-development book built from a 20-hour video transcript, running entirely in your browser.The Motivation It started with a simple question: What if you could turn a 20-hour self-dev video into something you could actually read, search, and verify? Most online self-development content exists to sell courses, not to present evidence. I wanted something honest. So, I built a real book where every notable claim is graded against cited research.What It Is: Zero Tracking, 100% Local The result is roughly 32k words across four pillars, a 30-claim evidence audit (graded A–D/U), 13 testable protocols, and full-text search.The best part? Zero tracking. No accounts, no APIs, no cookies. Your reading progress, streaks, highlights, themes, and quiz scores live entirely in your browser’s localStorage. Nothing leaves your machine.How We Built It The original video transcript was ~20k lines. We tag-teamed Claude, Gemini, and Opencode to compress it. From there, we built the site in layers:The Content Pipeline: scripts/build-data.mjs compiles Markdown chapters into SQLite using node:sqlite, then emits JSON data and a 30KB MiniSearch index.The Frontend: Next.js 16 static export and Tailwind v4. We used useSyncExternalStore for reactive local state via pure TypeScript modules.The Deploy: Automated via GitHub Actions straight to GitHub Pages.Into the Trenches (Challenges & Learnings)The CI Spiral: We added a React 19 QuoteCard. It built flawlessly locally (22/22 tests green), but failed eight consecutive GitHub Actions runs with a phantom TS error. It wasn’t a code bug; it was an environment disagreement. Lesson: Sometimes a feature just isn’t ready. We deleted it rather than fighting the environment or shipping it broken.Turbopack’s Quiet Types: The dev server uses Turbopack, which skips full type-checking for speed. We shipped a PR that built locally but failed in CI. Lesson: Always run tsc locally, or CI will aggressively remind you of the difference between “builds” and “types.“Case Sensitivity: GitHub Pages serves paths case-sensitively. NEXT_PUBLIC_BASE_PATH=/LevelUp is fundamentally different from /levelup. We learned this the hard way.What I’m Proud OfHonest Grading: No invented citations. If a famous “5x flow” stat is folklore, the site tells you so.Backend-less Magic: Search, quizzes, highlights, streaks, and schema-validated JSON backup/restore—all completely offline-capable.The Architecture: The data layer isn’t just a pile of JSON; it’s a statically served, compiled artifact from Markdown.Try it out:Live site: https://hustlenix.github.io/LevelUp/Source code: https://github.com/Hustlenix/LevelUpTech Stack: Next.js 16, Tailwind v4, node:sqlite, MiniSearch, GitHub Pages"}, {"post_id": 50297, "ts": "2026-08-19T13:37:53Z", "hours": 12.4239, "text": "So called Devlog, 3 The agenda today is to simplify the home page. I paid attention to it for 8 hours and ended up with two fewer things on screen than when I started lol😅✌🏻. After removing the large hero box and changing the chapter list to an accordion, the homepage appeared empty. I created a big wishlists of items to add: heatmaps, quote-generators, streak-trackers, quiz-cards, XP-counters, etc. Everything was built local-first on Next.js 16 (static export on GitHub Pages) using localStorage keys like levelup-streak-v1 no tracking or backend APIs. I constructed a QuoteCard component to retrieve data from /data/quotes.json. All 22 tests passed on my machine, but for some reason, GitHub Actions fails a phantom TS7006 type error 8+ times in a row because of that one CI error. I kept spamming commit messages like “force CI re-run”, “force CI re-re-re-run, and this time ts-ignore…”. It turned out to be a weird CI environment mismatch that ate half my day. I discarded the quote card to avoid clutter. In what was shipped was a simple PrivacyBadge (“100% Private · On-Device Storage Only”) along with a ThemeTimeShift script that alters the –hue CSS variable based off your clock. Next thing we must do is transition smoothly into the chapter! Stay techulated or smtg. STAY HARD GNG!"}, {"post_id": 47521, "ts": "2026-08-15T14:15:55Z", "hours": 0.4181, "text": "Finished writing the git hub repo, and used AI to organise the words cause it was full of gramatical mistakes and stuff. I am ready to ship this project GNG, what did I miss, please check this out and give some valid review please."}, {"post_id": 47501, "ts": "2026-08-15T13:29:22Z", "hours": 13.9158, "text": "This is my trust worthy, non tracked website for leveling up in your life but somehow works without any login or stuff, the tracking just works, inspired by this 20 hour video: https://www.youtube.com/watch?v=wvaY5bG5p7A&t=65s which is totally worth it. To build this I started by getting the transcript for making this website, and with that 20k lines transcript I pasted it into claude to compact this, and it ran out of tokens, and i tried gemini too sadly it too ran out of tokens, and lastly I tried Opencode few time and it finally gave me the summary for this and after few hours i finished the website and pushed the code to git hub, branched it real good, and finally build and in actions started a build and deploy workflow and got this running. STAY HARD GNG!!!!!!!!"}]...
|
Title: Level Up by @Lalith | Stardance
Devlogs:
T Title: Level Up by @Lalith | Stardance
Devlogs:
This is my trust worthy, non tracked website for leveling up in your life but somehow works without any login or stuff, the tracking just works, inspired by this 20 hour video: https://www.youtube.com/watch?v=wvaY5bG5p7A&t=65s which is totally worth it. To build this I started by getting the transcript for making this website, and with that 20k lines transcript I pasted it into claude to compact this, and it ran out of tokens, and i tried gemini too sadly it too ran out of tokens, and lastly I tried Opencode few time and it finally gave me the summary for this and after few hours i finished the website and pushed the code to git hub, branched it real good, and finally build and in actions started a build and deploy workflow and got this running. STAY HARD GNG!!!!!!!!
Finished writing the git hub repo, and used AI to organise the words cause it was full of gramatical mistakes and stuff. I am ready to ship this project GNG, what did I miss, please check this out and give some valid review please.
So called Devlog, 3 The agenda today is to simplify the home page. I paid attention to it for 8 hours and ended up with two fewer things on screen than when I started lol😅✌🏻. After removing the large hero box and changing the chapter list to an accordion, the homepage appeared empty. I created a big wishlists of items to add: heatmaps, quote-generators, streak-trackers, quiz-cards, XP-counters, etc. Everything was built local-first on Next.js 16 (static export on GitHub Pages) using localStorage keys like levelup-streak-v1 no tracking or backend APIs. I constructed a QuoteCard component to retrieve data from /data/quotes.json. All 22 tests passed on my machine, but for some reason, GitHub Actions fails a phantom TS7006 type error 8+ times in a row because of that one CI error. I kept spamming commit messages like “force CI re-run”, “force CI re-re-re-run, and this time ts-ignore…”. It turned out to be a weird CI environment mismatch that ate half my day. I discarded the quote card to avoid clutter. In what was shipped was a simple PrivacyBadge (“100% Private · On-Device Storage Only”) along with a ThemeTimeShift script that alters the –hue CSS variable based off your clock. Next thing we must do is transition smoothly into the chapter! Stay techulated or smtg. STAY HARD GNG!
I built a free MVP called Level Up: a 28-chapter self-development book built from a 20-hour video transcript, running entirely in your browser.The Motivation It started with a simple question: What if you could turn a 20-hour self-dev video into something you could actually read, search, and verify? Most online self-development content exists to sell courses, not to present evidence. I wanted something honest. So, I built a real book where every notable claim is graded against cited research.What It Is: Zero Tracking, 100% Local The result is roughly 32k words across four pillars, a 30-claim evidence audit (graded A–D/U), 13 testable protocols, and full-text search.The best part? Zero tracking. No accounts, no APIs, no cookies. Your reading progress, streaks, highlights, themes, and quiz scores live entirely in your browser’s localStorage. Nothing leaves your machine.How We Built It The original video transcript was ~20k lines. We tag-teamed Claude, Gemini, and Opencode to compress it. From there, we built the site in layers:The Content Pipeline: scripts/build-data.mjs compiles Markdown chapters into SQLite using node:sqlite, then emits JSON data and a 30KB MiniSearch index.The Frontend: Next.js 16 static export and Tailwind v4. We used useSyncExternalStore for reactive local state via pure TypeScript modules.The Deploy: Automated via GitHub Actions straight to GitHub Pages.Into the Trenches (Challenges & Learnings)The CI Spiral: We added a React 19 QuoteCard. It built flawlessly locally (22/22 tests green), but failed eight consecutive GitHub Actions runs with a phantom TS error. It wasn’t a code bug; it was an environment disagreement. Lesson: Sometimes a feature just isn’t ready. We deleted it rather than fighting the environment or shipping it broken.Turbopack’s Quiet Types: The dev server uses Turbopack, which skips full type-checking for speed. We shipped a PR that built locally but failed in CI. Lesson: Always run tsc locally, or CI will aggressively remind you of the difference between “builds” and “types.“Case Sensitivity: GitHub Pages serves paths case-sensitively. NEXT_PUBLIC_BASE_PATH=/LevelUp is fundamentally different from /levelup. We learned this the hard way.What I’m Proud OfHonest Grading: No invented citations. If a famous “5x flow” stat is folklore, the site tells you so.Backend-less Magic: Search, quizzes, highlights, streaks, and schema-validated JSON backup/restore—all completely offline-capable.The Architecture: The data layer isn’t just a pile of JSON; it’s a statically served, compiled artifact from Markdown.Try it out:Live site: https://hustlenix.github.io/LevelUp/Source code: https://github.com/Hustlenix/LevelUpTech Stack: Next.js 16, Tailwind v4, node:sqlite, MiniSearch, GitHub Pages
Instead of making this website feel like a simple website like a book, i am on a mission to make this website a full stack website for self improvement and i am thinking of adding paywall and make some money, but stripe isnt working from INDIA someone please help. STAY HARD!!!!!!!!!!!!!!!
Me corrently using my own app to study and finish my home work🤣🤣. Youto use it on https://hustlenix.github.io/LevelUp/ for free
I thought to keep this as a normal book website for a 20 hr video, until i didnt i wanted to somehow plan to make money out of this, so I am not planning to improve this to a full App and Add pricing and make money out of it. The app is gonna be about implementing the things for the 20 hr video effectively in my website for a lil $. For now everyone can try it our for free on https://hustlenix.github.io/LevelUp
Till now for my app i have like genrated the overall Backend and front end, but the frontend UI/UX is kinda mid. so i am thinking of improving it and opt for te second ship. In UI/UX i am thinking of doind this: 1. Today-first operating system shell — recommended Make /today/ the clear home of the product. Changes: Simplify navigation to: Today Learn Goals Progress More Make Today answer one question: “What should I do next?” Replace the long stacked Today page with a priority layout: Current goal One next action Start session Progress signal Recovery option Move goal creation into a focused onboarding/empty state instead of displaying a large form immediately. Turn Inbox, patterns, and reminders into compact secondary sections. Keep Goals, Focus, Review, Portfolio, and Roadmap as deep workspaces. Apply the same card, spacing, button, form, and empty-state system across all routes. Keep the existing editorial chapter experience intact. Backend/local-state work: Add a single typed local repository boundary. Harden localStorage validation and migrations. Improve backup/restore transaction handling. Make Ollama status and fallback behavior clearer. Add local data health diagnostics. Preserve offline use. Tradeoff: largest visible improvement, but touches navigation and the main execution surfaces. Editorial workspace polish Keep the existing navigation and route structure, but improve every page individually. Changes: Refine each page’s spacing and hierarchy. Upgrade cards, forms, progress indicators, and empty states. Add shared page headers and breadcrumbs. Improve mobile behavior without changing information architecture. Backend/local-state work remains the same. Tradeoff: lowest risk, but the product may still feel like multiple separate tools rather than one coherent operating system. Dashboard-centric command center Make /dashboard/ the main product and move most functionality into a dense professional workspace. Changes: Dashboard becomes a multi-panel command center. Today, Goals, Focus, Review, and Progress become dashboard tabs or panels. More information is visible at once. Strong for desktop power users. Tradeoff: efficient for experienced users but heavier, more complex, and less approachable on mobile.
I upgraded my MVP called Level Up: transforming a local-first self-development book into a full-featured, Today-first operating system—still running 100% in your browser.The Motivation While Ship #1 proved that a 20-hour video transcript could become a searchable, evidence-graded web book, the feedback was clear: the UI/UX felt fragmented. Having deep individual features wasn’t enough if the home experience didn’t tell you what to do right now. I set out to redesign Level Up from a passive reading interface into an actionable personal operating system.What’s New: The Today-First OS & Local AI Instead of a crowded home screen, the app now centers on a streamlined /today/ hub that answers one core question: “What should I do next?”Today Shell Navigation: Simplified navigation down to Today, Learn, Goals, Progress, and More, placing your current focus front and center.On-Device Study Workspace: Integrated a dedicated Study Mode featuring an automated Daily Planner, a Local Coach, and an interactive Tutor mode to explain or practice any of the 28 chapters.Smart Local AI Integration: Added support for local LLMs via Ollama with full offline fallback, letting you generate study plans and ask questions without leaking private data to external servers.How We Upgraded ItTyped Local State Boundary: Replaced fragmented localStorage usage with a single, typed local repository boundary managed via pure TypeScript modules and useSyncExternalStore.Data Diagnostics & Migrations: Hardened JSON schema validation, improved backup/restore transaction handling, and added local data health checks to ensure offline state never gets corrupted.UI/UX Consistency System: Standardized spacing, card hierarchies, buttons, forms, and empty states across all routes so every tool feels like part of a unified product.Into the Trenches (Challenges & Learnings)The Monolith vs. Workspaces Tradeoff: Moving from a multi-tool dashboard to a focused Today-first layout meant rethinking information architecture. We hid creation forms behind empty states and compressed secondary features like inbox items into compact panels to avoid visual clutter.Local AI Fallbacks: Integrating Ollama required explicit status checks and graceful local degradation so non-technical users or fully offline environments still get a clean UI without broken promises.What I’m Proud OfCoherent OS Feel: Level Up no longer feels like separate utilities tacked together; it operates as one smooth, self-contained habit driver.Privacy Preserved: Despite adding AI study tools and custom daily planners, everything remains zero-tracking, zero-backend, and fully functional on-device.Try it out:Live site: https://hustlenix.github.io/LevelUp/Source code: https://github.com/Hustlenix/LevelUpTech Stack: Next.js 16, Tailwind v4, TypeScript, node:sqlite, MiniSearch, Ollama / On-Device Local State, GitHub Pages
I think there is nothing to be upgraded in this, all i have to do now is add subscryptions and make money!!!!!!!!!!!!
I tried making this the final boss of Self Improvement APP, i think i am finally over, longin and start LEVELING UPPP!!!!!!!!!!!
Finishing touches, i think this is coming to and end, so i lokced in in these 10 hours and did some major changes, like used HCB APi key and give MILO an life so it can interact with you guys, and bumped up the UI/UX to and next level and: Milo Talk with offline guidance and explicit approval before saving suggested actions. Replayable walkthrough and app-wide text sizing up to 150%. Distinct Deep Work/Cyberpunk themes; preserved Light/Dark. Install guidance, offline support, refreshed screenshots, and technical documentation. Fixed Settings headings and Deep Work contrast. As per your reviews and real time feedback, thank you guys!
Ships:
I built a free MVP called Level Up : a 28-chapter self-development book built from a 20-hour video transcript, running entirely in your browser. The Motivation It started with a simple question: What if you could turn a 20-hour self-dev video into something you could actually read, search, and verify? Most online self-development content exists to sell courses, not to present evidence. I wanted something honest. So, I built a real book where every notable claim is graded against cited research. What It Is: Zero Tracking, 100% Local The result is roughly 32k words across four pillars, a 30-claim evidence audit (graded A–D/U), 13 testable protocols, and full-text search. The best part? Zero tracking. No accounts, no APIs, no cookies. Your reading progress, streaks, highlights, themes, and quiz scores live entirely in your browser’s localStorage . Nothing leaves your machine. How We Built It The original video transcript was ~20k lines. We tag-teamed Claude, Gemini, and Opencode to compress it. From there, we built the site in layers: The Content Pipeline: scripts/build-data.mjs compiles Markdown chapters into SQLite using node:sqlite , then emits JSON data and a 30KB MiniSearch index. The Frontend: Next.js 16 static export and Tailwind v4. We used useSyncExternalStore for reactive local state via pure TypeScript modules. The Deploy: Automated via GitHub Actions straight to GitHub Pages. Into the Trenches (Challenges & Learnings) The CI Spiral: We added a React 19 QuoteCard. It built flawlessly locally (22/22 tests green), but failed eight consecutive GitHub Actions runs with a phantom TS error. It wasn’t a code bug; it was an environment disagreement. Lesson: Sometimes a feature just isn’t ready. We deleted it rather than fighting the environment or shipping it broken. Turbopack’s Quiet Types: The dev server uses Turbopack, which skips full type-checking for speed. We shipped a PR that built locally but failed in CI. Lesson: Always run tsc locally, or CI will aggressively remind you of the difference between “builds” and “types.” Case Sensitivity: GitHub Pages serves paths case-sensitively. NEXT_PUBLIC_BASE_PATH=/LevelUp is fundamentally different from /levelup . We learned this the hard way. What I’m Proud Of Honest Grading: No invented citations. If a famous “5x flow” stat is folklore, the site tells you so. Backend-less Magic: Search, quizzes, highlights, streaks, and schema-validated JSON backup/restore—all completely offline-capable. The Architecture: The data layer isn’t just a pile of JSON; it’s a statically served, compiled artifact from Markdown. Try it out: Live site: https://hustlenix.github.io/LevelUp/ Source code: https://github.com/Hustlenix/LevelUp Tech Stack: Next.js 16, Tailwind v4, node:sqlite, MiniSearch, GitHub Pages
I upgraded my MVP called Level Up: transforming a local-first self-development book into a full-featured, Today-first operating system—still running 100% in your browser. The Motivation While Ship #1 proved that a 20-hour video transcript could become a searchable, evidence-graded web book, the feedback was clear: the UI/UX felt fragmented. Having deep individual features wasn’t enough if the home experience didn’t tell you what to do right now. I set out to redesign Level Up from a passive reading interface into an actionable personal operating system. What’s New: The Today-First OS & Local AI Instead of a crowded home screen, the app now centers on a streamlined /today/ hub that answers one core question: “What should I do next?” Today Shell Navigation: Simplified navigation down to Today, Learn, Goals, Progress, and More, placing your current focus front and center. On-Device Study Workspace: Integrated a dedicated Study Mode featuring an automated Daily Planner, a Local Coach, and an interactive Tutor mode to explain or practice any of the 28 chapters. Smart Local AI Integration: Added support for local LLMs via Ollama with full offline fallback, letting you generate study plans and ask questions without leaking private data to external servers. How We Upgraded It Typed Local State Boundary: Replaced fragmented localStorage usage with a single, typed local repository boundary managed via pure TypeScript modules and useSyncExternalStore. Data Diagnostics & Migrations: Hardened JSON schema validation, improved backup/restore transaction handling, and added local data health checks to ensure offline state never gets corrupted. UI/UX Consistency System: Standardized spacing, card hierarchies, buttons, forms, and empty states across all routes so every tool feels like part of a unified product. Into the Trenches (Challenges & Learnings) The Monolith vs. Workspaces Tradeoff: Moving from a multi-tool dashboard to a focused Today-first layout meant rethinking information architecture. We hid creation forms behind empty states and compressed secondary features like inbox items into compact panels to avoid visual clutter. Local AI Fallbacks: Integrating Ollama required explicit status checks and graceful local degradation so non-technical users or fully offline environments still get a clean UI without broken promises. What I’m Proud Of Coherent OS Feel: Level Up no longer feels like separate utilities tacked together; it operates as one smooth, self-contained habit driver. Privacy Preserved: Despite adding AI study tools and custom daily planners, everything remains zero-tracking, zero-backend, and fully functional on-device. Try it out: Live site: https://hustlenix.github.io/LevelUp/ Source code: https://github.com/Hustlenix/LevelUp Tech Stack: Next.js 16, Tailwind v4, TypeScript, node:sqlite, MiniSearch, Ollama / On-Device Local State, GitHub Pages
This is my final ship for Level Up. Level Up originally started as a simple idea: turn a 20-hour self-improvement video into something I could actually read, search, understand, and use. It started as basically a local-first book. Over time I kept asking the same question: “How do I make this useful after someone finishes reading?” So I kept rebuilding it. Now Level Up is much closer to a complete self-improvement app. The main experience is built around Today — you open the app, see what you are working toward, get a clear next action, start a focus/study session, and track your progress instead of just consuming more content. I also added Goals, Progress, Study Mode, a daily planner, tutor/coach tools, local AI through Ollama, chapter search, quizzes, streaks, highlights, backups, restore, and a much more consistent UI across the app. The hardest part was making all of this work while keeping the original idea of Level Up: no account required, no cloud database, and your personal progress stays on your device. I had to rebuild a lot of the local state system, handle migrations and corrupted data, improve backup/restore, and make sure the app still works properly offline or without local AI installed. The thing I’m most proud of is that it no longer feels like a book with random features added around it. It finally feels like one connected product. If you test it, don’t just click around. Actually use it: Create a goal Open Today and follow the next action Start a focus/study session Read or study a chapter Check your Progress Refresh/reopen the app and see your data persist There are definitely things I could keep polishing forever, but I don’t want this project to become an endless cycle of “one more redesign.” This is the version I’m calling finished. Try it: https://hustlenix.github.io/LevelUp/ Source: https://github.com/Hustlenix/LevelUp Thanks to everyone who tested it, gave feedback, or followed the devlogs while this went from a small reading website into this. LEVEL UP. 🚀
Shipped LevelUp! It started as a way to make a long self-development video easier to read. Now it has 28 chapters, practical plans, habits, focus timers, and a daily mission system. You can save an idea from a chapter and actually try it instead of forgetting it five minutes later. Milo is the little companion that reacts to your reading and focus activity. Everything important works locally, without an account or trackers. There’s also an offline progress system called Nexus, which handles changes across tabs and lets you move progress using encrypted files. This update mostly brought the different parts together. I fixed mobile layouts, added larger text and a quick tutorial, and made backups include the newer features. Cloud chat still needs work, and the app could be simpler, but the full version is live now. Try it: https://hustlenix.github.io/LevelUp/...
|
1793004590.0500307
|
1793090990.0500307
|
|
291
|
YouTweaks by @kanavv | Stardance
|
kanavv
|
2
|
36.0
|
646
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T15:48:19Z", "hours": 8.0, "multiplier": 14.56, "payout": 113, "blessing": "neutral", "text": "YouTweaks is a quality of life extension made to improve your experience on youtube. I decided to build this project because I was super frustrated with how youtube has become. With this extension I made the youtube experience less annoying and also added some features so you are more mindful while choosing what to watch. For this Ship I added the color themes feature fixed a LOT of bugs and I also created a custom playback speed feature which im super proud of and finally I incorporated feedback from the first ship (fixing the readme). This project has been super fun and this is going to be my last ship for stardance but I will probably keep working on this! Also im super happy my extension got approved to be on the firefox store so if you like it you can add it here: https://addons.mozilla.org/en-US/firefox/addon/youtweaks/", "repo": "https://github.com/KanAvR/YouTweaks", "demo": "https://github.com/KanAvR/YouTweaks/releases"}, {"ship_num": 2, "ts": "2026-09-19T14:15:30Z", "hours": 28.0, "multiplier": 18.99, "payout": 533, "blessing": "neutral", "text": "YouTweaks is a quality of life extension made to improve your experience on youtube. I decided to build this project because I was super frustrated with how youtube has become. With this extension I made the youtube experience less annoying and also added some features so you are more mindful while choosing what to watch. Overall this has been a really fun project to work on. I never thought I would have fun coding in javascript.", "repo": "https://github.com/KanAvR/YouTweaks", "demo": "https://github.com/KanAvR/YouTweaks/releases"}]...
|
[{"post_id": 75193, "ts": "202 [{"post_id": 75193, "ts": "2026-09-29T13:29:09Z", "hours": 1.3944, "text": "Bug Fixes I fixed another bug with the stop hover effects feature that used to show the effect if you hovered over the title of the video. Blur Slider I added a blur slider so people can adjust the amount of thumbnail blur. Feedback I incorporated the better readme feedback from the first ship where many people said I should explain why each feature is added. Sry for the camera photo I just reinstalled linux."}, {"post_id": 72184, "ts": "2026-09-22T12:40:55Z", "hours": 2.1672, "text": "Custom themes fixes I fixed some parts of the website that were not changing colors. I should have thought of this earlier but its going to be such a pain to keep the themes feature up to date with youtubes ui hence I am going to mark it as an experimental feature until I figure out how to change the themes in a better way. Playback speed controls without premium I am super happy with how this feature turned out it looks exactly like youtubes ui."}, {"post_id": 71663, "ts": "2026-09-21T08:21:31Z", "hours": 4.2158, "text": "Whole lotta bugs I thought I was done with everything but I found so many bugs. The shorts blocker was broken, the blocking youtube games dint work, and there was a bug where the video you were watching just stopped playing when you went into full screen. Shorts and game blocker So first the shorts bug would just delete the whole fyp if it found a short. This was was quite an easy fix since I just had to change what got deleted. Next the youtube games blocker was searching for text with “youtube games” which I changed to work the same way as the shorts blocker and then it started working properly. Full screen bug I fixed the full screen bug by only stopping the effects on objects we know are video tiles and nothing else. Themes Finally I also started working on a themes feature which looks so cool!! but its such a pain to work on. Theres so many tiny things I need to sit and edit so it looks right."}, {"post_id": 70604, "ts": "2026-09-19T13:15:26Z", "hours": 0.7297, "text": "Made the final commit before shipping Soo now the hide shorts feature works without bugs and I also finished adding the hide merch store feature. Now I just need to figure out how to publish my extension to the firefox and chrome store. Oh I also made a readme."}, {"post_id": 52261, "ts": "2026-08-22T11:20:45Z", "hours": 1.0539, "text": "View count and Publish date I moved the view count and publish dates to be next to the like button instead of the stupid tiny text it was before. To do this I made a new file called videometa.js it uses two functions one to extract the abbreviated views/ publish date and another one to extract the full views/ publish date which shows up when you hover over the information. Additionally I also fixed some Issues with the stop autoplay on hover and stop effects on hover functions, which I merged into one function earlier."}, {"post_id": 47509, "ts": "2026-08-15T13:57:57Z", "hours": 1.5306, "text": "Finished the time tracking feature!!! I haven’t gotten any time to update the project since my summer break ended. But I finally got some time to work on the project because of the time constraints I used AI to write code for this feature :( Im not proud of it but at least the feature works with no dumb bugs (for now at least) Daily limit So I added a daily limit and a bed time cut off so people dont waste the whole day on YouTube. I also added a snooze feature that appears when the YouTube limit has been reached since I often need YouTube for school work and it would become an issue if there was no way to bypass the limit. Time counter badge The concept time counter I made in a previous devlog works now and changes colors based on how much of the daily limit you have used. Stats And finally I also added a stats feature for fun since I love looking at my stats on leech block and wanted something similar for this project."}, {"post_id": 33955, "ts": "2026-07-24T09:42:36Z", "hours": 2.2917, "text": "Everything is such a mess right now I’m working on so many features at once its getting to much too handle. And I dint even make separate branches or make commits per feature so its getting so messy . I’m working on Refactoring all the code to change the deleting elements code to use css instead of JS so it has better performance hopefully . A time tracking feature. Moving the view count and date of upload up to the like button. This feature has had so many random unexpected issues its pmo. hiding the annoying red little bar below videos on the homescreen. some good progress: I merged the stopAutoPlayOnHover and stopHoverEffects into one function and I also fixed all the bugs with the function such as it not working on pages other then the homepage. Next time I should work on things in order AND AT LEAST MAKE BRANCHES ALSO MY COMMITS RN ARE HUGE I SHOULD MAKE THEM SMALLER; ONE FOR EACH FEATURE."}, {"post_id": 32345, "ts": "2026-07-21T13:35:52Z", "hours": 2.7347, "text": "Fixed Blur Again Instead of sitting and excluding things from the thumbnail blur I changed the code to only blur thumbnails. This is so stupid idk how I came up with that nonsense earlier. Stopped auto play when you hover over videos This feature works along with the other hover feature to make you a little more mindful while choosing a video to watch. Time tracking Im working on a whole new set of features to actually add something new for once since this project has just been removing stuff till now. The feature will track your time on youtube and allow you to set limits so you don’t waste your whole day on youtube. The feature will look something like the image. The current image is just a mock up ."}, {"post_id": 24678, "ts": "2026-07-08T12:58:53Z", "hours": 2.5467, "text": "Bugs The hide notification toggle worked visually but if you clicked in that spot the panel still opened so for now I came up with a temporary fix of using a new function to stop the button form working. Also the thumbnail blur still has issues 😭 . For some reason it blurs emojis now. I will fix that later. New Feature I added a feature so when you hover on video you don’t get that distracting ambient color around the thumbnail. This helps because the glow acts like a tiny visual reward before you’ve actually decided anything; it makes a thumbnail feel “chosen” the moment you hover over it. Without that glow, your judgement has to do the work the color was doing for them; so you can be a little more mindful about what you click on. Popup ui Added a background, added the logo, aligned all the elements, and tested out a few fonts before finally choosing Geist . I used this Article to understand css."}, {"post_id": 24303, "ts": "2026-07-07T19:46:42Z", "hours": 2.9003, "text": "First time features actually work as intended!! The blur had a lot of bugs as mentioned in the first devlog I slowly managed to fix all of them in different ways and now its complete. The hardest issue was if you scrolled too fast then you would still get a glimpse of the thumbnail. I fixed this by creating a <style> element which applies the blur before the thumbnails load. So now there’s no need of a mutation or scroll observer either. Logo I created the logo for this project using free form on my ipad then I used claude to make different versions of it for all the resolutions (16,32,48,128) and for the project banner. New Features I added two new features to hide the create button and the notifications button because who ever clicks those. At first I made to separate functions for this but that was really stupid so then I made a generic function that just removes any element. Also I used el.style.display = hidden instead of el.remove since the element can instantly be unhidden if the user wants without needing a refresh."}, {"post_id": 22143, "ts": "2026-07-04T13:28:00Z", "hours": 4.3089, "text": "Major Progress Okay so a lot happened since the last devlog. I paused my progress on the auto play feature and instead moved on to some small changes. I also made a lot of random commits for testing small things which was kinda tedious to revert later (Image shows the graph after all the random stuff was removed). Hide Shorts This feature was pretty simple to implement as I just used querySelectorAll to select the elements with the youtube shorts buttons then I just checked for the text “shorts” so the function doesn’t accidentally delete something else. Finally I used element.remove() to delete the buttons. Also added a mutation observer so the button stays deleted. Hiding unnecessary buttons I basically just did the same thing as above to hide other buttons that clutter up the screen like the create button and the voice search button. Branches This is the first time I learnt how to properly use branches in git. I made two separate branches for the two features I worked on so the variable names are not an issue for now."}, {"post_id": 16405, "ts": "2026-06-26T18:04:27Z", "hours": 2.8767, "text": "Improving file structure First off I fixed the mess of files that were just dropped into the project folder; this would become an issue in the future as I kept on creating new files. Creating the popup I stared off by creating popup.html popup.css and popup.js files after which I went back to the manifest.json to link the popup files but here I realized that the whole JSON file was broken because all the items were inside \"action\" this had not caused any issues so far but it could have led to many problems in the future. After fixing the JSON file I linked the popup files and added storage and scripting permissions to the extension which will be needed later. Next I read a blog post of how to write HTML. Then I created a toggle switch for which I borrowed copied the css from w3schools . Now for the toggle switch to work I had to make a few changes to youtweaks.js . Now it checks the browser storage to see if thumbnail blur is toggled on/off and also continuous checks to see if the toggle switch has been changed which accordingly turns on/off the blur. Other changes I started working on the next feature to stop the auto play of videos when you hover over them as the only purpose of this is to get you hooked onto a video before you even click on it. Which often results in wasted time. While working on that feature I also managed to fix the blur so now it works everywhere on youtube but as a side effect it also blurs youtubers profile pictures which ill fix later."}, {"post_id": 12135, "ts": "2026-06-19T20:37:08Z", "hours": 3.2972, "text": "Fixing the three issues: I first implemented a mutation observer which reapplies the blur every time something on the page changes, this solved issues 1 and 3 but did so in a very sloppy way as a “mutation” was only detected when you hover the mouse on a thumbnail. To fix the problems in a more optimal way I tried a lot of things: I started learning about intersection observers, scroll observers, and started a 3 hour crash course on js to understand what in the world I was doing. I spent a lot of time tinkering and then my problem was solved with a simple search on Mozilla’s developer docs . I used a scroll event listener which fixed the scrolling issue but the other issues still remain. At this point I was so tired I started setting up the gui for the extension which involved making some changes to the manifest.json file."}, {"post_id": 3002, "ts": "2026-06-05T22:40:05Z", "hours": 3.8056, "text": "So the aim of this project is to improve youtube’s usage experience through small tweaks. This is my first time doing anything related to websites I know nothing 😭 So I started off the project by creating a manifest.json file which contains all the data required to run the extension. For this the Mozilla docs were a huge help. Next, I started by creating the first feature of blurring thumbnails. I somehow managed to inspect element the youtube website and select the correct element id to select the thumbnails ig. But this came with three issues: The blur stops working after a refresh The blur only works on the home page The blur stops working after scrolling a lot To fix these Issues I first searched for the issue on w3schools but I dint understand anything I found; so after a bit more digging I came across someone facing a similar issue on stack overflow and after a very long while of trying to understand his code I managed to modify it to work for my extension. This fixed the third issue but not the other 2."}]...
|
Title: YouTweaks by @kanavv | Stardance
Devlogs:
Title: YouTweaks by @kanavv | Stardance
Devlogs:
So the aim of this project is to improve youtube’s usage experience through small tweaks. This is my first time doing anything related to websites I know nothing 😭 So I started off the project by creating a manifest.json file which contains all the data required to run the extension. For this the Mozilla docs were a huge help. Next, I started by creating the first feature of blurring thumbnails. I somehow managed to inspect element the youtube website and select the correct element id to select the thumbnails ig. But this came with three issues: The blur stops working after a refresh The blur only works on the home page The blur stops working after scrolling a lot To fix these Issues I first searched for the issue on w3schools but I dint understand anything I found; so after a bit more digging I came across someone facing a similar issue on stack overflow and after a very long while of trying to understand his code I managed to modify it to work for my extension. This fixed the third issue but not the other 2.
Fixing the three issues: I first implemented a mutation observer which reapplies the blur every time something on the page changes, this solved issues 1 and 3 but did so in a very sloppy way as a “mutation” was only detected when you hover the mouse on a thumbnail. To fix the problems in a more optimal way I tried a lot of things: I started learning about intersection observers, scroll observers, and started a 3 hour crash course on js to understand what in the world I was doing. I spent a lot of time tinkering and then my problem was solved with a simple search on Mozilla’s developer docs . I used a scroll event listener which fixed the scrolling issue but the other issues still remain. At this point I was so tired I started setting up the gui for the extension which involved making some changes to the manifest.json file.
Improving file structure First off I fixed the mess of files that were just dropped into the project folder; this would become an issue in the future as I kept on creating new files. Creating the popup I stared off by creating popup.html popup.css and popup.js files after which I went back to the manifest.json to link the popup files but here I realized that the whole JSON file was broken because all the items were inside "action" this had not caused any issues so far but it could have led to many problems in the future. After fixing the JSON file I linked the popup files and added storage and scripting permissions to the extension which will be needed later. Next I read a blog post of how to write HTML. Then I created a toggle switch for which I borrowed copied the css from w3schools . Now for the toggle switch to work I had to make a few changes to youtweaks.js . Now it checks the browser storage to see if thumbnail blur is toggled on/off and also continuous checks to see if the toggle switch has been changed which accordingly turns on/off the blur. Other changes I started working on the next feature to stop the auto play of videos when you hover over them as the only purpose of this is to get you hooked onto a video before you even click on it. Which often results in wasted time. While working on that feature I also managed to fix the blur so now it works everywhere on youtube but as a side effect it also blurs youtubers profile pictures which ill fix later.
Major Progress Okay so a lot happened since the last devlog. I paused my progress on the auto play feature and instead moved on to some small changes. I also made a lot of random commits for testing small things which was kinda tedious to revert later (Image shows the graph after all the random stuff was removed). Hide Shorts This feature was pretty simple to implement as I just used querySelectorAll to select the elements with the youtube shorts buttons then I just checked for the text “shorts” so the function doesn’t accidentally delete something else. Finally I used element.remove() to delete the buttons. Also added a mutation observer so the button stays deleted. Hiding unnecessary buttons I basically just did the same thing as above to hide other buttons that clutter up the screen like the create button and the voice search button. Branches This is the first time I learnt how to properly use branches in git. I made two separate branches for the two features I worked on so the variable names are not an issue for now.
First time features actually work as intended!! The blur had a lot of bugs as mentioned in the first devlog I slowly managed to fix all of them in different ways and now its complete. The hardest issue was if you scrolled too fast then you would still get a glimpse of the thumbnail. I fixed this by creating a <style> element which applies the blur before the thumbnails load. So now there’s no need of a mutation or scroll observer either. Logo I created the logo for this project using free form on my ipad then I used claude to make different versions of it for all the resolutions (16,32,48,128) and for the project banner. New Features I added two new features to hide the create button and the notifications button because who ever clicks those. At first I made to separate functions for this but that was really stupid so then I made a generic function that just removes any element. Also I used el.style.display = hidden instead of el.remove since the element can instantly be unhidden if the user wants without needing a refresh.
Bugs The hide notification toggle worked visually but if you clicked in that spot the panel still opened so for now I came up with a temporary fix of using a new function to stop the button form working. Also the thumbnail blur still has issues 😭 . For some reason it blurs emojis now. I will fix that later. New Feature I added a feature so when you hover on video you don’t get that distracting ambient color around the thumbnail. This helps because the glow acts like a tiny visual reward before you’ve actually decided anything; it makes a thumbnail feel “chosen” the moment you hover over it. Without that glow, your judgement has to do the work the color was doing for them; so you can be a little more mindful about what you click on. Popup ui Added a background, added the logo, aligned all the elements, and tested out a few fonts before finally choosing Geist . I used this Article to understand css.
Fixed Blur Again Instead of sitting and excluding things from the thumbnail blur I changed the code to only blur thumbnails. This is so stupid idk how I came up with that nonsense earlier. Stopped auto play when you hover over videos This feature works along with the other hover feature to make you a little more mindful while choosing a video to watch. Time tracking Im working on a whole new set of features to actually add something new for once since this project has just been removing stuff till now. The feature will track your time on youtube and allow you to set limits so you don’t waste your whole day on youtube. The feature will look something like the image. The current image is just a mock up .
Everything is such a mess right now I’m working on so many features at once its getting to much too handle. And I dint even make separate branches or make commits per feature so its getting so messy . I’m working on Refactoring all the code to change the deleting elements code to use css instead of JS so it has better performance hopefully . A time tracking feature. Moving the view count and date of upload up to the like button. This feature has had so many random unexpected issues its pmo. hiding the annoying red little bar below videos on the homescreen. some good progress: I merged the stopAutoPlayOnHover and stopHoverEffects into one function and I also fixed all the bugs with the function such as it not working on pages other then the homepage. Next time I should work on things in order AND AT LEAST MAKE BRANCHES ALSO MY COMMITS RN ARE HUGE I SHOULD MAKE THEM SMALLER; ONE FOR EACH FEATURE.
Finished the time tracking feature!!! I haven’t gotten any time to update the project since my summer break ended. But I finally got some time to work on the project because of the time constraints I used AI to write code for this feature :( Im not proud of it but at least the feature works with no dumb bugs (for now at least) Daily limit So I added a daily limit and a bed time cut off so people dont waste the whole day on YouTube. I also added a snooze feature that appears when the YouTube limit has been reached since I often need YouTube for school work and it would become an issue if there was no way to bypass the limit. Time counter badge The concept time counter I made in a previous devlog works now and changes colors based on how much of the daily limit you have used. Stats And finally I also added a stats feature for fun since I love looking at my stats on leech block and wanted something similar for this project.
View count and Publish date I moved the view count and publish dates to be next to the like button instead of the stupid tiny text it was before. To do this I made a new file called videometa.js it uses two functions one to extract the abbreviated views/ publish date and another one to extract the full views/ publish date which shows up when you hover over the information. Additionally I also fixed some Issues with the stop autoplay on hover and stop effects on hover functions, which I merged into one function earlier.
Made the final commit before shipping Soo now the hide shorts feature works without bugs and I also finished adding the hide merch store feature. Now I just need to figure out how to publish my extension to the firefox and chrome store. Oh I also made a readme.
Whole lotta bugs I thought I was done with everything but I found so many bugs. The shorts blocker was broken, the blocking youtube games dint work, and there was a bug where the video you were watching just stopped playing when you went into full screen. Shorts and game blocker So first the shorts bug would just delete the whole fyp if it found a short. This was was quite an easy fix since I just had to change what got deleted. Next the youtube games blocker was searching for text with “youtube games” which I changed to work the same way as the shorts blocker and then it started working properly. Full screen bug I fixed the full screen bug by only stopping the effects on objects we know are video tiles and nothing else. Themes Finally I also started working on a themes feature which looks so cool!! but its such a pain to work on. Theres so many tiny things I need to sit and edit so it looks right.
Custom themes fixes I fixed some parts of the website that were not changing colors. I should have thought of this earlier but its going to be such a pain to keep the themes feature up to date with youtubes ui hence I am going to mark it as an experimental feature until I figure out how to change the themes in a better way. Playback speed controls without premium I am super happy with how this feature turned out it looks exactly like youtubes ui.
Bug Fixes I fixed another bug with the stop hover effects feature that used to show the effect if you hovered over the title of the video. Blur Slider I added a blur slider so people can adjust the amount of thumbnail blur. Feedback I incorporated the better readme feedback from the first ship where many people said I should explain why each feature is added. Sry for the camera photo I just reinstalled linux.
Ships:
YouTweaks is a quality of life extension made to improve your experience on youtube. I decided to build this project because I was super frustrated with how youtube has become. With this extension I made the youtube experience less annoying and also added some features so you are more mindful while choosing what to watch. Overall this has been a really fun project to work on. I never thought I would have fun coding in javascript.
YouTweaks is a quality of life extension made to improve your experience on youtube. I decided to build this project because I was super frustrated with how youtube has become. With this extension I made the youtube experience less annoying and also added some features so you are more mindful while choosing what to watch. For this Ship I added the color themes feature fixed a LOT of bugs and I also created a custom playback speed feature which im super proud of and finally I incorporated feedback from the first ship (fixing the readme). This project has been super fun and this is going to be my last ship for stardance but I will probably keep working on this! Also im super happy my extension got approved to be on the firefox store so if you like it you can add it here: https://addons.mozilla.org/en-US/firefox/addon/youtweaks/...
|
1793004543.0756087
|
1793090943.0756087
|
|
21857
|
HoopIQ by @atharva02 | Stardance
|
atharva02
|
3
|
75.8
|
642
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-03T21:56:53Z", "hours": 22.0, "multiplier": 16.02, "payout": 348, "blessing": "neutral", "text": "I made a basketball training app that will help people train their basketball skills. The hardest part in this ship was probably finding the best way to integrate mobile into this. I really don’t like styling, and it took really long to figure out correct widths, until I realized viewport widths which made life so much easier and correctly take up the space you need. I’m most proud of the animations that have now been integrated within the site. They’re pretty basic, but I do think they add enough flavor to the app to make it a little bit more enjoyable, which is always a nice touch. When testing this project, data is saved locally so progress doesn’t save between devices and inactivity may make your browser clear the data if that’s something you have enabled(Safari does this a lot). Also note that when viewing the GitHub, I’m working on this with branches so view the “feature/training-adjustments” branch to see current committed changes, they’re not merged on main yet. This is the third ship for this project, and I anticipate more to come so all feedback is appreciated. Enjoy!", "repo": "https://github.com/atharva-277/Basketball-Trainer", "demo": "https://hoop-iq-277.web.app/"}, {"ship_num": 2, "ts": "2026-08-29T02:17:33Z", "hours": 21.0, "multiplier": 10.39, "payout": 215, "blessing": "neutral", "text": "I made a basketball training app that will help people train their basketball skills. A challenging part for this part was finding specific drills that improved the skillset that I had created. Also the metric to imperial conversion had a finicky error which took a lot longer to fix, but it’s here now so great! I’m proud that the drills remain personalized like the other training parts as they target where you have logged you are weak at. I feel training sites are best when the user knows where they struggle and needs a medium to improve. When testing this project, data is saved locally so progress doesn’t save between devices(this is only laptop friendly right now, sorry) and inactivity may make your browser clear the data if that’s something you have enabled(Safari does this a lot). Also note that when viewing the GitHub, I’m working on this with branches so view the “feature/training-adjustments” branch to see current committed changes, they’re not merged on main yet. Other than that, this is the second ship so some feedback was incorporated, but same as before, this app will continue to be expanded upon so all feedback is good feedback. Enjoy!", "repo": "https://github.com/atharva-277/Basketball-Trainer", "demo": "https://hoop-iq-277.web.app/"}, {"ship_num": 3, "ts": "2026-08-20T01:05:17Z", "hours": 6.0, "multiplier": 12.86, "payout": 79, "blessing": "neutral", "text": "I made a basketball training app that will help people train their basketball skills. The challenging part within making this app was finding out what skills are important to test out. Obviously shooting is the main aspect of basketball, but it’s also important to practice ball control. After that, there was challenges it creating specific algorithms to test those skills that provide an even split across the categories. I’m most proud of how the shot diet and baseline work together to create a unique training experience so you specifically work on categories that help YOUR play style, rather than a generic one. When testing this project, all data is saved locally so progress doesn’t save between devices(this is only laptop friendly right now, sorry) and inactivity may make your browser clear the data if that’s something you have enabled(Safari does this a lot). Other than that, I’m really excited to get any feedback on this whatsoever considering there is a lot more I plan to add to this. Enjoy!", "repo": "https://github.com/atharva-277/Basketball-Trainer", "demo": "https://hoop-iq-277.web.app/"}]...
|
[{"post_id": 65645, "ts": "202 [{"post_id": 65645, "ts": "2026-09-10T22:34:50Z", "hours": 4.3764, "text": "Devlog #18 Current Features Drill panel is here! Took a lot of effort to get working because accessing data from the same project is hard 😭. It wasn’t hard to access the drill history itself, but the way I was storing it was based on ID numbers and not drill names(something that was never actually stored) which made it hard to show on screen. I think it looks really good on the screen, and it’s intuitive to access via the calendar, click on the day. What’s Coming Up Right now it only shows what exactly you did, and your performance their specifically. However, I want to make it so that the user can easily see the misses they tagged as well, providing an all encompassing way of accessing all their history within this app. Obviously my app uses the data to give them drill suggestions, but the user should be able to see their history and make their own trends based on what they see. Game Plan I’ll be spending the next chunk of this trying to get that working: backend functionality, styling on screen, updating day to day, stuff like that. After that I’ll try to incorporate some animations in that and unless I think of other major changes, there will be another ship hopefully."}, {"post_id": 64585, "ts": "2026-09-09T02:57:01Z", "hours": 4.1461, "text": "Devlog #17 Current Features Started to work on the hover/pressing functionality. I’ve decided to simply combine the two functionalities into one, but I’m struggling to find the best way to display it on the screen. Basically, the user should be able to tap the day they worked on something, and see what exactly they did What’s Coming Up I was mainly testing with the backend part of this within these hours and will push a UI update to reflect these changes within the coming days hopefully. Other than that, I want to hopefully add a feature where they see the exact percentage boost they got by doing a task if I have the correct data to hold that. Game Plan Add UI features as mentioned above, switch gears to working on backend part of progress updates, and see how the app looks like then. Note: I had to reset data to test the UI, hence why my streak isn’t the 2 days including yesterday:)"}, {"post_id": 63999, "ts": "2026-09-08T03:20:25Z", "hours": 4.7167, "text": "Devlog #16 Current Features UI update is finally here! Finally got this working after a lot of trial and error with the display and making it show up with the proper date. The best part is it also looks great with the mobile without any extra styling so even better for me! What’s Coming Up Still want to add more functionality to the calendar specifically such as clicking to see your exact work, hovering to see basic title overview, and just general user interactivity. Game Plan Most of the above changes go along with how I stored data anyway, so I’m not behind in any regard. I plan on adding the above changes first, before deciding what else there is to add in relation to this."}, {"post_id": 63341, "ts": "2026-09-07T03:22:10Z", "hours": 5.4511, "text": "Devlog #14 Current Events Calendar is basically fully functioning! Hasn’t been integrated in the UI yet like I hoped it would be, but I got it working the way I wanted it to with the user able to see their progress in a quick snapshot. Really happy to see this working now as it’s been a asked feature in past ships What’s Coming Up The UI update will definitely be what’s coming up next. I know this was mentioned last devlog, but instead I got it close to fully working and now will be adding the interface. Game Plan Adding the UI on the screen so it fully works, and then switching over to the backend part of the session history"}, {"post_id": 62479, "ts": "2026-09-05T20:52:52Z", "hours": 4.2714, "text": "Devlog #13 Current Events Decided to add the screen itself to the UI so it’s easier to update these logs with progress as it occurs. On the backend, I realize I have been storing drill sessions anyway, just wasn’t displaying them so that’s a pretty big timesave. Along with that, the calendar is still a work in progress, just doing some testing to see how exactly it works along with how the streak will play into that. What’s Coming Up I’d expect a UI update shortly with multiple elements on the screen, maybe not fully functional right away, but in the intial working phase if that makes sense. Game Plan Add calendar and streak elements on screen with functionality – I’ll need some time to test if the days are tracked correctly. After that, it’ll be simply integrated session logs onto the screen"}, {"post_id": 61806, "ts": "2026-09-04T21:52:28Z", "hours": 3.8361, "text": "Devlog #13 Current Events I have started working on implementing a calendar and streak feature. I want to make it similar to stardance’s so that you can see what you worked on that specific day. Essentially, I’ll be adding another tab called history and input information there so they can see their streaks, recent drills, and progress over time. What’s Coming Up None of the UI has been integrated, but that doesn’t mean the backend is finished either. I was experimenting with how exactly the calendar works and how it might look within the UI. Game Plan I plan on slowly integrate the UI with the tab and only show the calendar and streaks at first once that starts working, and then work towards displaying the drill history. Thank you to whoever mentioned formatting devlogs properly in ship review! This makes it a lot easier to read."}, {"post_id": 61135, "ts": "2026-09-03T21:52:45Z", "hours": 5.5231, "text": "Devlog #12 Animations are here! Admittedly, there aren’t too animations, mainly because the one I saw online aren’t sites where the user is constantly interacting, their mainly shops or display sites, like WebOS. However, they are here now and I feel that they’re subtle, but still look nice on the screen. I especially like the pulse effect on the baseline screen when you increase, or decrease, your made shots. A ship will follow this devlog, so as always, please give all feedback that you can think of, specifically features which you want added that could improve this. I anticipate my next feature to be a calendar/streak system of sorts, giving the user visual cues on their progress. I have not forgotten about the drill tutorials, it’s just that it’s a bit more complicated and I like showing off progress periodically, not just once at the end. Hope you all enjoy!"}, {"post_id": 59907, "ts": "2026-09-01T22:48:44Z", "hours": 3.5156, "text": "Devlog #11 New Feature? I don’t know if mobile integration really counts as a new feature but I’m counting it anyway. This makes it easier to train as it is no longer necessary to be huddled around a laptop, entering your data. The new styles make it easier to navigate throughout the site on your phone. I know in my very first devlog I said I want to make a mobile app, but I think making a website work well on a phone also serves that need. Nothing has changed with the way data is handled, the main thing I worked on here was CSS styling in the new media set. These were hours well spent on making the site look good on a phone, so I hope you all enjoy it. My next goal is to add animations to the CSS, whether that’s new elements or just simple, quick navigation I don’t fully know yet. I will also be postponing the drill tutorials to a later date, I want to get another ship this week(I like having each ship have only a few unique features added, it helps me get feedback in bits rather than on everything), and I will likely not have the time to research online drill images or make them myself. Otherwise, I’ve had a lot of fun continuing this project so I hope you guys like this new style as much as I do. Attached is the recreation of mobile styles using Chrome Dev Tools, I didn’t want to type this all on my phone. Enjoy!"}, {"post_id": 59297, "ts": "2026-09-01T00:36:19Z", "hours": 3.7131, "text": "Devlog #10 A sad devlog, but a necessary one, GameIQ has been removed and will not be a feature any longer. I wasn’t able to find an efficient way to add in multiple situations unless I gave a paragraph of information instead of an image describing the situation. Perhaps I will be able to find a workaround with play-drawing section, but I’ve also realized that most people will not use this to play professional basketball games in any regard(high school or rec league), and will use it for pickup most likely. I will be focusing my attention on adding features that were recommended from previous ship reviews. I apologize for anyone reading these devlogs waiting for GameIQ to be a feature, it has been removed now. I am sorry."}, {"post_id": 58372, "ts": "2026-08-30T19:39:48Z", "hours": 3.6325, "text": "Devlog #9 GameIQ is still a work in progress right now, but the second ship reviews came in so I’m planning on making this a larger ship with more than just that. A big recommendation was drill tutorials so I might integrate a separate YouTube channel and provide links to the drills so people know how to do them, or find something online who knows. Also people said to add some animations to the actual site so I will probably add that as well. Despite the 3.5 hours in this devlog, I still couldn’t find a viable API source for the GameIQ, or maybe I’m not looking hard enough lol. I’m still going to try to find some alternative instead of hard-coding situations because I don’t know how many I’ll be able to do. But, I know for sure that some suggestions from past ships will be integrated within the next ship. Thank you for all the feedback so far, it’s been great reading them and planning out what more to do with this project!"}, {"post_id": 57742, "ts": "2026-08-30T00:37:08Z", "hours": 5.3189, "text": "Devlog #8 I’ve started working on the GameIQ section, except nothing with the Ui yet. I’ve been trying to get the internal logic to work and it’s being a bit weird. I’m trying to see if there’s a way to get a large question bank of answers without using an API to route to questions. Other than that, the main premise of GameIQ is you’ll be given a situation and you have to make the correct read out of 4 options, basically a quiz which you can opt out of anytime. Once that’s integrated as simply a base functionality, I hope to make it specific to the drills the user is actively working on to further test their skills. But again, not much works right now, it’s just some base logic with not much else."}, {"post_id": 57000, "ts": "2026-08-29T02:12:39Z", "hours": 4.6917, "text": "Devlog #7 Drills have been incorporated successfully! The user can now properly use this app to actually improve I think. Rather than repeatedly doing the same thing, they can do specific drills to improve their skills. This has the same display as the handling and shooting session log only difference is this doesn’t affect any of the calculations associated with you. These drills are simply a means to improve your handling and shooting skills which thereby affect your percentages. The drills tell you what to complete along with a suggested rep/time count but even if you log more/less it only affects you and not the internal algorithm. Other change made was based off of the first recommendation by adding metric units. This has also been added, you choose at the start and can update at any time via the settings page. Internal calculations still use inches, but the display will show metric in case anyone is looking at what data is being stored. Enjoy!"}, {"post_id": 56232, "ts": "2026-08-27T22:07:13Z", "hours": 5.4708, "text": "Devlog #6 New Feature! Drills are now a new feature that are still a small work in progress, but the initial testing is complete so though I’d post about it here. Essentially before all you could do was practice repetitive actions without actually working on how to improve it. Now with drills, after you’ve done some sessions to see how you’re performing, this will gauge where you’re usually messing up and provide drills to improve. Now these drills will help improve a specific part of the misses you tagged earlier. The flow that I’m going for here is you practice specific shot types and tag misses, complete drills to help said misses, and improve your skills over time! I’m still working on specific drills to add, along with descriptions so the user knows how to perform them. Attached is how it currently looks on the training screen, the session screen is still a work in progress. Note: some feedback given from initial ship will be adressed in next devlog, assuming I get around to it. Once this drill functionality is working and some feedback is adressed, there will most likely be another ship. Enjoy!"}, {"post_id": 54390, "ts": "2026-08-25T11:46:41Z", "hours": 6.0103, "text": "Devlog #5 Unfortunately, no new coding was done because I ran into multiple errors that took a lot of time trying to fix. I’m not actually sure what happened, but my files were messed up and the file structure internally broke down. Luckily, it’s all fixed now, so I thought I’d post this small devlog so I can reset my hours and post a new one when I start working on the drill features, without the 10 hour limit worrying me. Other than that, the UI of the app remains unchanged."}, {"post_id": 52649, "ts": "2026-08-22T21:46:24Z", "hours": 4.5331, "text": "Devlog #4 I did my usual project UI overhaul like I always need to usually. I usually let Claude generate the UI just so I can see stuff on the screen when I code the actual logic, and then inevitably forget I did that when I go to ship, but I have attempted to revert most of that back while still maintain the basketball theme. I personally think it looks pretty good now, I made all of the text bigger, made the buttons and most elements on the screen more visible. I also added a hover effect on most elements to give it an orange glow, this will eventually be converted to fully-mobile friendly(currently it works just doesn’t look good) but I still really enjoy it. Other than that there weren’t any logic changes, just felt the need to showcase what the site looks like right now as I spent a large amount of time updating the UI. Enjoy!"}, {"post_id": 50700, "ts": "2026-08-20T01:01:11Z", "hours": 2.7242, "text": "Devlog 3 So much has happened since. Now that the user has a baseline that they can be compared against, the initial training algorithm has been created! Right now it’s mainly based off of repetition and the user should continuously practice the same stuff they did within the baseline. This is simply the initial algorithm because based off of the baseline, the algorithm finds the weakest area and applies percentages to each are so you practice weak ones more than others. As you can see from the provided image: I have to practice specific ball handling and then if I don’t reach the amount, I have to tag a miss and it gives a cue on what you can do to fix that. Eventually, after this keeps growing, it’ll give specific drills that help instead of repetition. However, I will likely ship after this to see what people think of this so far and we’ll go from there."}, {"post_id": 36695, "ts": "2026-07-28T22:23:59Z", "hours": 2.4206, "text": "Devlog #2 So instead of generating a baseline based off of just personal bio-data, the user goes through a series of drills to see where they stand at currently. They have to practice threes, mid-rangers, layups, and practice some ball-handling drills. Based off of these beginning stats, it generates their current overall and saves their stats to be used later. Right now this is the only main thing that works and based off of this I’m gonna generate a training regime that best fits them mainly off of these stats. Other than that, the user is also able to input their shot diet on the training screen which basically tells the computer what they do when they have the ball. For example, they shoot threes 15% of the time, mid-rangers 35%, layups 40%, and handle the ball via dribbling 10%. Attached is a sample results page after the user finishes their baseline."}, {"post_id": 14042, "ts": "2026-06-23T00:47:40Z", "hours": 1.0325, "text": "So I’m currently working on a basketball trainer website, eventually converted into an app to help people improve their basketball skills. Currently, there’s only a good UI base because I haven’t started the full functionality yet. I plan on, hopefully, adding a new training section twice every week, or just weekly if that’s what works. Attached is the home page where the user inputs their info to get a baseline for training rigor."}]...
|
Title: HoopIQ by @atharva02 | Stardance
Devlogs:
Title: HoopIQ by @atharva02 | Stardance
Devlogs:
So I’m currently working on a basketball trainer website, eventually converted into an app to help people improve their basketball skills. Currently, there’s only a good UI base because I haven’t started the full functionality yet. I plan on, hopefully, adding a new training section twice every week, or just weekly if that’s what works. Attached is the home page where the user inputs their info to get a baseline for training rigor.
Devlog #2 So instead of generating a baseline based off of just personal bio-data, the user goes through a series of drills to see where they stand at currently. They have to practice threes, mid-rangers, layups, and practice some ball-handling drills. Based off of these beginning stats, it generates their current overall and saves their stats to be used later. Right now this is the only main thing that works and based off of this I’m gonna generate a training regime that best fits them mainly off of these stats. Other than that, the user is also able to input their shot diet on the training screen which basically tells the computer what they do when they have the ball. For example, they shoot threes 15% of the time, mid-rangers 35%, layups 40%, and handle the ball via dribbling 10%. Attached is a sample results page after the user finishes their baseline.
Devlog 3 So much has happened since. Now that the user has a baseline that they can be compared against, the initial training algorithm has been created! Right now it’s mainly based off of repetition and the user should continuously practice the same stuff they did within the baseline. This is simply the initial algorithm because based off of the baseline, the algorithm finds the weakest area and applies percentages to each are so you practice weak ones more than others. As you can see from the provided image: I have to practice specific ball handling and then if I don’t reach the amount, I have to tag a miss and it gives a cue on what you can do to fix that. Eventually, after this keeps growing, it’ll give specific drills that help instead of repetition. However, I will likely ship after this to see what people think of this so far and we’ll go from there.
Devlog #4 I did my usual project UI overhaul like I always need to usually. I usually let Claude generate the UI just so I can see stuff on the screen when I code the actual logic, and then inevitably forget I did that when I go to ship, but I have attempted to revert most of that back while still maintain the basketball theme. I personally think it looks pretty good now, I made all of the text bigger, made the buttons and most elements on the screen more visible. I also added a hover effect on most elements to give it an orange glow, this will eventually be converted to fully-mobile friendly(currently it works just doesn’t look good) but I still really enjoy it. Other than that there weren’t any logic changes, just felt the need to showcase what the site looks like right now as I spent a large amount of time updating the UI. Enjoy!
Devlog #5 Unfortunately, no new coding was done because I ran into multiple errors that took a lot of time trying to fix. I’m not actually sure what happened, but my files were messed up and the file structure internally broke down. Luckily, it’s all fixed now, so I thought I’d post this small devlog so I can reset my hours and post a new one when I start working on the drill features, without the 10 hour limit worrying me. Other than that, the UI of the app remains unchanged.
Devlog #6 New Feature! Drills are now a new feature that are still a small work in progress, but the initial testing is complete so though I’d post about it here. Essentially before all you could do was practice repetitive actions without actually working on how to improve it. Now with drills, after you’ve done some sessions to see how you’re performing, this will gauge where you’re usually messing up and provide drills to improve. Now these drills will help improve a specific part of the misses you tagged earlier. The flow that I’m going for here is you practice specific shot types and tag misses, complete drills to help said misses, and improve your skills over time! I’m still working on specific drills to add, along with descriptions so the user knows how to perform them. Attached is how it currently looks on the training screen, the session screen is still a work in progress. Note: some feedback given from initial ship will be adressed in next devlog, assuming I get around to it. Once this drill functionality is working and some feedback is adressed, there will most likely be another ship. Enjoy!
Devlog #7 Drills have been incorporated successfully! The user can now properly use this app to actually improve I think. Rather than repeatedly doing the same thing, they can do specific drills to improve their skills. This has the same display as the handling and shooting session log only difference is this doesn’t affect any of the calculations associated with you. These drills are simply a means to improve your handling and shooting skills which thereby affect your percentages. The drills tell you what to complete along with a suggested rep/time count but even if you log more/less it only affects you and not the internal algorithm. Other change made was based off of the first recommendation by adding metric units. This has also been added, you choose at the start and can update at any time via the settings page. Internal calculations still use inches, but the display will show metric in case anyone is looking at what data is being stored. Enjoy!
Devlog #8 I’ve started working on the GameIQ section, except nothing with the Ui yet. I’ve been trying to get the internal logic to work and it’s being a bit weird. I’m trying to see if there’s a way to get a large question bank of answers without using an API to route to questions. Other than that, the main premise of GameIQ is you’ll be given a situation and you have to make the correct read out of 4 options, basically a quiz which you can opt out of anytime. Once that’s integrated as simply a base functionality, I hope to make it specific to the drills the user is actively working on to further test their skills. But again, not much works right now, it’s just some base logic with not much else.
Devlog #9 GameIQ is still a work in progress right now, but the second ship reviews came in so I’m planning on making this a larger ship with more than just that. A big recommendation was drill tutorials so I might integrate a separate YouTube channel and provide links to the drills so people know how to do them, or find something online who knows. Also people said to add some animations to the actual site so I will probably add that as well. Despite the 3.5 hours in this devlog, I still couldn’t find a viable API source for the GameIQ, or maybe I’m not looking hard enough lol. I’m still going to try to find some alternative instead of hard-coding situations because I don’t know how many I’ll be able to do. But, I know for sure that some suggestions from past ships will be integrated within the next ship. Thank you for all the feedback so far, it’s been great reading them and planning out what more to do with this project!
Devlog #10 A sad devlog, but a necessary one, GameIQ has been removed and will not be a feature any longer. I wasn’t able to find an efficient way to add in multiple situations unless I gave a paragraph of information instead of an image describing the situation. Perhaps I will be able to find a workaround with play-drawing section, but I’ve also realized that most people will not use this to play professional basketball games in any regard(high school or rec league), and will use it for pickup most likely. I will be focusing my attention on adding features that were recommended from previous ship reviews. I apologize for anyone reading these devlogs waiting for GameIQ to be a feature, it has been removed now. I am sorry.
Devlog #11 New Feature? I don’t know if mobile integration really counts as a new feature but I’m counting it anyway. This makes it easier to train as it is no longer necessary to be huddled around a laptop, entering your data. The new styles make it easier to navigate throughout the site on your phone. I know in my very first devlog I said I want to make a mobile app, but I think making a website work well on a phone also serves that need. Nothing has changed with the way data is handled, the main thing I worked on here was CSS styling in the new media set. These were hours well spent on making the site look good on a phone, so I hope you all enjoy it. My next goal is to add animations to the CSS, whether that’s new elements or just simple, quick navigation I don’t fully know yet. I will also be postponing the drill tutorials to a later date, I want to get another ship this week(I like having each ship have only a few unique features added, it helps me get feedback in bits rather than on everything), and I will likely not have the time to research online drill images or make them myself. Otherwise, I’ve had a lot of fun continuing this project so I hope you guys like this new style as much as I do. Attached is the recreation of mobile styles using Chrome Dev Tools, I didn’t want to type this all on my phone. Enjoy!
Devlog #12 Animations are here! Admittedly, there aren’t too animations, mainly because the one I saw online aren’t sites where the user is constantly interacting, their mainly shops or display sites, like WebOS. However, they are here now and I feel that they’re subtle, but still look nice on the screen. I especially like the pulse effect on the baseline screen when you increase, or decrease, your made shots. A ship will follow this devlog, so as always, please give all feedback that you can think of, specifically features which you want added that could improve this. I anticipate my next feature to be a calendar/streak system of sorts, giving the user visual cues on their progress. I have not forgotten about the drill tutorials, it’s just that it’s a bit more complicated and I like showing off progress periodically, not just once at the end. Hope you all enjoy!
Devlog #13 Current Events I have started working on implementing a calendar and streak feature. I want to make it similar to stardance’s so that you can see what you worked on that specific day. Essentially, I’ll be adding another tab called history and input information there so they can see their streaks, recent drills, and progress over time. What’s Coming Up None of the UI has been integrated, but that doesn’t mean the backend is finished either. I was experimenting with how exactly the calendar works and how it might look within the UI. Game Plan I plan on slowly integrate the UI with the tab and only show the calendar and streaks at first once that starts working, and then work towards displaying the drill history. Thank you to whoever mentioned formatting devlogs properly in ship review! This makes it a lot easier to read.
Devlog #13 Current Events Decided to add the screen itself to the UI so it’s easier to update these logs with progress as it occurs. On the backend, I realize I have been storing drill sessions anyway, just wasn’t displaying them so that’s a pretty big timesave. Along with that, the calendar is still a work in progress, just doing some testing to see how exactly it works along with how the streak will play into that. What’s Coming Up I’d expect a UI update shortly with multiple elements on the screen, maybe not fully functional right away, but in the intial working phase if that makes sense. Game Plan Add calendar and streak elements on screen with functionality – I’ll need some time to test if the days are tracked correctly. After that, it’ll be simply integrated session logs onto the screen
Devlog #14 Current Events Calendar is basically fully functioning! Hasn’t been integrated in the UI yet like I hoped it would be, but I got it working the way I wanted it to with the user able to see their progress in a quick snapshot. Really happy to see this working now as it’s been a asked feature in past ships What’s Coming Up The UI update will definitely be what’s coming up next. I know this was mentioned last devlog, but instead I got it close to fully working and now will be adding the interface. Game Plan Adding the UI on the screen so it fully works, and then switching over to the backend part of the session history
Devlog #16 Current Features UI update is finally here! Finally got this working after a lot of trial and error with the display and making it show up with the proper date. The best part is it also looks great with the mobile without any extra styling so even better for me! What’s Coming Up Still want to add more functionality to the calendar specifically such as clicking to see your exact work, hovering to see basic title overview, and just general user interactivity. Game Plan Most of the above changes go along with how I stored data anyway, so I’m not behind in any regard. I plan on adding the above changes first, before deciding what else there is to add in relation to this.
Devlog #17 Current Features Started to work on the hover/pressing functionality. I’ve decided to simply combine the two functionalities into one, but I’m struggling to find the best way to display it on the screen. Basically, the user should be able to tap the day they worked on something, and see what exactly they did What’s Coming Up I was mainly testing with the backend part of this within these hours and will push a UI update to reflect these changes within the coming days hopefully. Other than that, I want to hopefully add a feature where they see the exact percentage boost they got by doing a task if I have the correct data to hold that. Game Plan Add UI features as mentioned above, switch gears to working on backend part of progress updates, and see how the app looks like then. Note: I had to reset data to test the UI, hence why my streak isn’t the 2 days including yesterday:)
Devlog #18 Current Features Drill panel is here! Took a lot of effort to get working because accessing data from the same project is hard 😭. It wasn’t hard to access the drill history itself, but the way I was storing it was based on ID numbers and not drill names(something that was never actually stored) which made it hard to show on screen. I think it looks really good on the screen, and it’s intuitive to access via the calendar, click on the day. What’s Coming Up Right now it only shows what exactly you did, and your performance their specifically. However, I want to make it so that the user can easily see the misses they tagged as well, providing an all encompassing way of accessing all their history within this app. Obviously my app uses the data to give them drill suggestions, but the user should be able to see their history and make their own trends based on what they see. Game Plan I’ll be spending the next chunk of this trying to get that working: backend functionality, styling on screen, updating day to day, stuff like that. After that I’ll try to incorporate some animations in that and unless I think of other major changes, there will be another ship hopefully.
Ships:
I made a basketball training app that will help people train their basketball skills. The challenging part within making this app was finding out what skills are important to test out. Obviously shooting is the main aspect of basketball, but it’s also important to practice ball control. After that, there was challenges it creating specific algorithms to test those skills that provide an even split across the categories. I’m most proud of how the shot diet and baseline work together to create a unique training experience so you specifically work on categories that help YOUR play style, rather than a generic one. When testing this project, all data is saved locally so progress doesn’t save between devices(this is only laptop friendly right now, sorry) and inactivity may make your browser clear the data if that’s something you have enabled(Safari does this a lot). Other than that, I’m really excited to get any feedback on this whatsoever considering there is a lot more I plan to add to this. Enjoy!
I made a basketball training app that will help people train their basketball skills. A challenging part for this part was finding specific drills that improved the skillset that I had created. Also the metric to imperial conversion had a finicky error which took a lot longer to fix, but it’s here now so great! I’m proud that the drills remain personalized like the other training parts as they target where you have logged you are weak at. I feel training sites are best when the user knows where they struggle and needs a medium to improve. When testing this project, data is saved locally so progress doesn’t save between devices(this is only laptop friendly right now, sorry) and inactivity may make your browser clear the data if that’s something you have enabled(Safari does this a lot). Also note that when viewing the GitHub, I’m working on this with branches so view the “feature/training-adjustments” branch to see current committed changes, they’re not merged on main yet. Other than that, this is the second ship so some feedback was incorporated, but same as before, this app will continue to be expanded upon so all feedback is good feedback. Enjoy!
I made a basketball training app that will help people train their basketball skills. The hardest part in this ship was probably finding the best way to integrate mobile into this. I really don’t like styling, and it took really long to figure out correct widths, until I realized viewport widths which made life so much easier and correctly take up the space you need. I’m most proud of the animations that have now been integrated within the site. They’re pretty basic, but I do think they add enough flavor to the app to make it a little bit more enjoyable, which is always a nice touch. When testing this project, data is saved locally so progress doesn’t save between devices and inactivity may make your browser clear the data if that’s something you have enabled(Safari does this a lot). Also note that when viewing the GitHub, I’m working on this with branches so view the “feature/training-adjustments” branch to see current committed changes, they’re not merged on main yet. This is the third ship for this project, and I anticipate more to come so all feedback is appreciated. Enjoy!...
|
1792878565.47188
|
1793742565.47188
|
|
24718
|
Kerbal Gravity Program by @Systemic_speed | Starda Kerbal Gravity Program by @Systemic_speed | Stardance...
|
Systemic_speed
|
1
|
50.0
|
636
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-22T17:07:33Z", "hours": 50.0, "multiplier": 12.89, "payout": 636, "blessing": "neutral", "text": "Kerbal Gravity Program: SHIP - 1 Any KSP player knows the pain of planning a whole journey, then the Kraken wipes it and sends you back to the pad. Real missions are the same grind (see Cassini-Huygens: Cassini’s trajectory ). So I built KGRP — a mission planner for KSP you drive from a REPL or code, to plan and understand trips to other planets. Crash course pip install kgrp # Python 3.10+ kgrp # start the REPL help # every command, flag, and use Requirements Built on numpy (math), scipy (integration/solving), and pyvista (orbit and trajectory visualization), with rich and prompt-toolkit powering the REPL. What was challenging The math was the hard part — RKF(4)5 (Runge-Kutta-Fehlberg 4(5)), an adaptive-step integrator, was an absolute pain to get right. Shipping a real library was the other half; I’d made sites and small CLIs, but wasn’t sure this would hold together. What I’m proud of First thing I’ve ever put on PyPI. Along the way I got real with numpy, scipy, pyvista, and building a CLI/REPL people can actually use. A note on AI I used AI to help squash bugs and for the basic beautification of the README. The planning math and the tool itself are mine; the AI just helped me clean up and unstick the rough parts. Try it It’s out — test it, throw it at the wall, and send notes via feedback. P.S. There are a few easter eggs hiding in the errors. Go find them. Happy orbiting!!!", "repo": "https://github.com/Gautham-rgb/Kerbal-Gravity-Program", "demo": "https://pypi.org/project/kgrp/"}]...
|
[{"post_id": 48135, "ts": "202 [{"post_id": 48135, "ts": "2026-08-16T12:59:10Z", "hours": 10.3972, "text": "Devlog 9 — Kerbal Gravity Program: the REPL is (almost) done No devlog last week — life happened, then OpenCode helped me absolutely cook. Newcomers: KGRP is a mission planner for KSP (runs outside the game). You define a spacecraft, stack events on a timeline, and the sim runs them. Plan in the tool, fly in the game. Where we are The REPL is nearly feature-complete. Every mission action is a TicketEvent — coast, maneuver, burn, engine toggle, science. The REPL never touches your ship directly; it just advances a ticket in UT and events fire when the timeline reaches them. One plan drives the renderer, physics, and save file. Also closed the loop on “one source of truth”: the fancy integrator used to run in a vacuum (zero gravity) when fired from a ticket. Now go , advance , and reset all agree on where you are. go Pick a start and end orbit from the presets and it works out burns, coasting, and delta-v, then schedules them: > go current moon:3a Transfer plan: Current (200,000m circular, 0.0 deg) -> Mun orbit (11,400,000m circular, 0.0 deg) (about Kerbin) Burns: 2 Total delta-v: 1,112.7 m/s Duration: 27,130.1s burn @ 0.0s dv=764.2 m/s Raise apoapsis to transfer coast 0.0s -> 27,130.1s Coast to apoapsis burn @ 27,130.1s dv=348.5 m/s Circularize / match target Resulting orbit: pe=12,000,000m ap=12,000,000m i=0.0 deg around Kerbin Presets are editable (and saveable to presets.json ); the planner core is a plain importable function ( go_plan(ticket, ...).total_dv ). Usability Time input isn’t a math exam: advance 2d 5h , time \"Year 2, Day 100\" . Per-use overrides without touching presets: go current preset:molniya incl=30 . go shows the plan and asks before committing (gradual / instant / cancel). edit now handles ships, not just bodies: mass, fuel, orbit elements. New-ticket wizard hands you an engine and 3,000 kg of fuel instead of a paperweight. After a reset you can clear/redo the timeline without fighting the guard. What’s next Some math is still coarse: plane changes are exact only for moon targets, synchronous orbits are a placeholder (no body rotation yet), arg-p/LAN drift isn’t modeled, and error messages need work — for when you type advance 5 bananas . Fun one I found: escaping at exactly escape velocity puts the orbit at eccentricity 1.000000 and the math gives up — the craft freezes and frame switches / go turn to nonsense. Interplanetary go is broken because of it, but burning slightly past escape fixes it (properly hyperbolic, maths happy). Just needs wiring in. In the meantime Planning to put it up on PyPi and hope it works"}, {"post_id": 43345, "ts": "2026-08-08T15:27:51Z", "hours": 8.115, "text": "Devlog 8: Kerbal Gravity Program For anyone who’s new here, KGRP is a mission planning tool I’m building for KSP (and hopefully real-world missions too). The goal is to make planning orbital transfers and interplanetary missions a lot easier. Think of it as something inspired by libraries like Skyfield and Poliastro , but with a bigger focus on actually planning missions Today and the days after i gave my last devlog were actually useful, i mainly just created a new class based system (yes i am forced to, because my idea needs tooo many moving parts) called the Ticket : The Ticket allows you to plan entire journeys using TicketEvents , stuff that define what can happen to a spacecraft (14 of them). for example, you can have a ticket that contains a maeuver, a coast, an rcs translation, a docking and more. and one more thing, instead of a CLI (one command and forget), i am instead making a REPL (it remembers what you did). so yeah, that sums most of it up and also i made a new banner for KGRP (kinda yay???) What’s next so the main thing is to just start making the REPL using prompt-toolkit and other stuff. until then, see ya"}, {"post_id": 35751, "ts": "2026-07-27T12:06:00Z", "hours": 5.0831, "text": "Devlog 7: Kerbal Gravity Program (KGRP) For anyone who’s new here, KGRP is a mission planning tool I’m building for KSP (and hopefully real-world missions too). The goal is to make planning orbital transfers and interplanetary missions a lot easier. Think of it as something inspired by libraries like Skyfield and Poliastro , but with a bigger focus on actually planning missions. What happened today? Today was surprisingly productive and useful. The biggest thing is that the renderer finally works. I spent way too long fighting with it over the past few days, so it’s nice to finally be able to move planets around without everything exploding. I also added a few other things: You can now create entire planetary systems from a planet.json file. Added adapters for PySide6 and NiceGUI , so there are a couple of different ways to use the renderer now. Started working on a more realistic gravity simulator that can deal with things like Lagrange points. KGRP finally has an actual logo (\(^▽^)/) instead of me pretending the text was good enough for docs and stuff. One thing I still need to fix is the JSON loader. Right now it only really likes absolute paths, which is… less than ideal. The renderer tried to gaslight me I swear I’m not making this up. Earlier today I found this absolutely cursed bug where, if you flew the camera into the Sun and zoomed out, the whole scene turned into this weird fisheye effect with random lines stretching across the screen. I was already mentally preparing myself to spend the next few hours digging through camera code and VTK documentation… …and then it just stopped happening. I didn’t fix it. I didn’t even change anything related to the camera. It just… disappeared. So either I accidentally fixed it without realizing, or it’s waiting until I show someone the project before it decides to come back. What’s next? Nothing too exciting, mostly polishing things up. Fix the JSON loader. Squash whatever bugs are still hiding in the renderer. Improve the CLI a bit more. Anyway, here’s the renderer doing the thing (oh, gotta fix that) and the logo (idk if it’s good, comment about it)."}, {"post_id": 32971, "ts": "2026-07-22T13:58:33Z", "hours": 9.6439, "text": "Devlog 6: Kerbal Gravity Program (KGRP) KGRP is a mission planning tool I’m building for KSP players and actual aerospace engineers to map out complex trajectories. It’s loosely based on libraries like Skyfield , Poliastro , and Trajectorize . The ultimate goal is to make it easy to plot out massive interplanetary trips, whether you’re trying to reach Jool and Sarnus (with the Outer Planets Mod) or calculating a real-world journey out to Neptune. What happened today Today was a very, very buggy day. I had to tackle the core rendering systems, but I ended up running a grueling gauntlet through almost every Python graphics library out there—Panda3D, Ursina, ModernGL, VPython, and more. Every single one of them introduced some kind of blocking issue: Windows that were supposed to pop up via Tkinter or Pygame-CE started doing random things like teleporting wildly across my screen or rendering with completely broken layout dimensions. Even when a window finally initialized and stayed stable, it would just mock me with a dead black screen entirely missing our blobs of color (the actual planets and calculated orbit lines). This black-screen loop is exactly what hit me when I switched over to PyVista. Why the Viewport went Black Staring into a blank 3D canvas is a rite of passage when writing an engine from scratch. After tracking down the pipeline bugs, the black screen in PyVista boiled down to three classic astrodynamics simulation mistakes: The Compound Drift Bug ( mesh.translate ) Using mesh.translate(inplace=True) directly mutates the underlying vertex memory of the sphere meshes. Because my physics engine loop advances frames based on absolute coordinates ( get_absolute_pos_at_ut ), relative delta transforms compounded exponentially. Within frame one, the planets physically flew millions of kilometers away from the camera. The Camera Initialization Trap Setting camera_position = 'iso' while the newly instantiated planet objects were still sitting uninitialized at (0, 0, 0) forced the viewport to lock its focus onto a microscopic bounding box. The moment the first timer tick updated positions, everything teleported way past the active field of view. Scaling Using a singular scale factor for both orbit diameters and planetary dimensions created a massive rendering mismatch. A planet with a 6,000 km radius shrinks down to a fraction of a single pixel when drawn on a canvas scaled to capture massive astronomical unit (AU) trajectories, rendering it invisible. Next Flight Steps for Devlog 6 With a stable graphics viewport finally up and running, the graphics engine foundation is secure. The next challenge is implementing the actual trajectory planning functionality. My primary focus items for the next devlog will be: The Trajectory Tracer: Working out how to render a dynamic, rolling polyline tail behind a Spacecraft body as it traces arcs across different coordinates. Camera Tracking Hooks: Hooking into interactor mouse clicks so that double-clicking a planet or vessel pins the camera target matrix to that object, keeping it centered even at high time warp rates. Optimizing Kepler Solvers: Ensuring the underlying analytical Newton-Raphson solvers can handle high eccentricities without dragging down frame rates."}, {"post_id": 27100, "ts": "2026-07-12T11:25:12Z", "hours": 1.9753, "text": "Devlog 5: Kerbal Gravity Program KGRP is a mission planning tool I’m building for KSP players and actual aerospace engineers to map out complex trajectories. It’s loosely based on libraries like Skyfield , Poliastro , and Trajectorize . The ultimate goal is to make it easy to plot out massive interplanetary trips, whether you’re trying to reach Jool and Sarnus (with the Outer Planets Mod) or calculating a real-world journey out to Neptune. What Happened Today We need to talk about a major turning point for this project. Today was the day I finally broke. I sat down ready to write some beautiful orbital physics code, but instead, I spent hours staring at a screen full of red squiggly lines. I was trapped in a seemingly endless loop of configuring MinGW paths, updating JSON files, wrestling with Conan, and trying to force VS Code to recognize where the Eigen math library was hiding. I realized I was spending 90% of my energy fighting a stubborn C++ compiler and only 10% actually thinking about gravity and orbital transfers. As a solo developer trying to build something massive, that is a recipe for burning out. I was totally fed up. So, I had a choice: keep sinking precious hours into configuration hell, or do something radical to save my velocity. I chose velocity. I opened up my file explorer, went to the project root, and completely ripped out the entire cpp folder. Shift + Delete. Gone. (To any C++ purists reading this: I am deeply sorry, but it had to be done.) By committing to a pure Python architecture, I can keep the code lean, fast, and remarkably lightweight (for an interpreted language): NumPy : We are using the best library for 3D math operations. SciPy : Gives me instant access to rock-solid root-finding algorithms. This means my Lambert solver is going to be incredibly robust and fast. Using this, We can get C++ execution speeds with the absolute bliss of plain Python syntax. Pyrr : A new Library that i am going to learn, this acts as a wrapper for numpy, allowing for easy rendering moderngl_window a pythonic librayry that allows one to easily show and render stuff. Next Steps Now that the compiler weight is off my back, I can actually focus on making this program amazing. The real fun starts now: Setting up a clean Python environment with scipy , pyrr , moderngl and numpy installed. Rendering stuff (Yahoo!). Building the profile structures for the Kerbol system and our real-world solar system. well then here is me installing pyrr and thinking of how to use and learn the library."}, {"post_id": 26427, "ts": "2026-07-11T06:48:03Z", "hours": 4.0178, "text": "Devlog 4: Kerbal Gravity Program (KGRP) KGP—well, actually let’s call it KGRP now because apparently “kgp” is already taken by some Kubernetes stuff, and I don’t want stuff breaking anyone’s cloud infrastructure—is a mission planning tool I’m building for KSP players and actual aerospace engineers to map out complex trajectories. It’s loosely based on libraries like Skyfield , Poliastro , and Trajectorize . The ultimate goal is to make it easy to plot out massive interplanetary trips, whether you’re trying to reach Jool and Sarnus (with the Outer Planets Mod) or calculating a real-world journey out to Neptune. What I did today Well, today was mostly chill on the numerical part. I got the RKF(4)5 adaptive step solver fully up and running, and the burns produced by the Lambert solver are perfect and insanely accurate. The physics side of things is feeling really solid. But then came the C++ transition, which immediately humbled me. For hours, this was only working in Python because CMake seriously hates me. Seriously, why does a plain text file have so much attitude? Even though I explicitly gave it the include paths in VS Code, the thing still refused to find where Eigen was. I was getting so incredibly frustrated that I was genuinely on the verge of ragequitting, deleting the whole directory, and typing sudo rm -rf out of pure spite. And then I realized what a complete idiot I was being. CMake wasn’t failing to compile the library. It had actually built the thing perfectly. The issue was that I was stubbornly typing ./build/kgrvs like a caveman, completely missing the fact that the compiled binary was sitting right there inside ./build/Release/kgrvs . Once I actually typed the right path, the C++ code ran flawlessly and matched my Python results perfectly down to the decimal point. The engine is officially alive, and I need to go look at a wall for a few minutes to recover from the self-inflicted psychological damage. (BTW here is me almost bricking my computer)"}, {"post_id": 24105, "ts": "2026-07-07T13:47:36Z", "hours": 5.2864, "text": "Devlog 3: Kerbal Gravity Program KGP is a mission planning tool I’m building for KSP players and actual aerospace engineers to map out complex trajectories. It’s loosely based on libraries like Skyfield , Poliastro , and Trajectorize . The ultimate goal is to make it easy to plot out massive interplanetary trips, whether you’re trying to reach Jool and Sarnus (with the Outer Planets Mod) or calculating a real-world journey out to Neptune. Hey there, i am very, very sorry for the wait, got caught up in school and illness, so ima try and be more punctual, maybe a devlog every week? well, we will see if my timetable is free or “unstable” What I did today Finally make a Lambert solver, the math was insanely hard and i am still getting insanely wrong numbers. (like a burn of 11,000 m/s to go to Duna in perfect conditions). for the Lambert solver, i had to create a new class, the Spacecraft class, this is the actual spacecraft that is going to go on the arduous journey to another planet or moon (basically a moving body class). I am in the process of making the Orbit class, the LambertSolver class and the solve_anomaly() function resistant to non elliptic orbits. well then here is Ruff and Vs code screaming at me because of a single equal sign"}, {"post_id": 19970, "ts": "2026-07-01T13:17:10Z", "hours": 3.5031, "text": "Devlog 2: Kerbal Gravity Program (KGP) KGP is a mission planning tool I’m building for KSP players and actual aerospace engineers to map out complex trajectories. It’s loosely based on libraries like Skyfield , Poliastro , and trajectorize . The ultimate goal is to make it easy to plot out massive interplanetary trips, whether you’re trying to reach Jool and Sarnus (with the Outer Planets Mod) or calculating a real-world journey out to Neptune. What I did today Today was way more math-heavy than I expected. I spent most of my time building out the core infrastructure: The Orbit class to actually handle orbital mechanics. The Body class for celestial bodies and barycenters. The absolute_position function to figure out the exact coordinates of an object in a nested system, tracking it all the way back to the root central body as the origin. What I learned Planet tracking is wild: The sheer amount of math required to find the exact position of a planet at a specific timestamp is honestly mind-boggling. It took a lot of staring at equations, but once I finally understood the logic, implementing it became a lot smoother. The heavy lifters are terrifying: The core system is going to rely on a Lambert solver and an RK4 integrator. I’ll be honest—these algorithms are so intensely complex that it looks like scribbles on paper. Anyway, here is a small test run of the Python prototype in action:"}, {"post_id": 17430, "ts": "2026-06-28T06:29:34Z", "hours": 1.7036, "text": "Devlog 1: Kerbal Gravity Program (KGP) KGP is a mission planning tool I am building for KSP players and actual aerospace engineers to map out complex trajectories. Loosely based on Skyfield , Poliastro and trajectorize , The goal is to make it easy to plot out massive interplanetary trips, whether you are trying to reach Jool and Sarnus (with the Outer Planets Mod) or calculating a real-world journey out to Neptune. What I Did Today Mapped out the 4-phase development roadmap Decided to use a mix of C++ for raw execution speed and Python for fast development. Phase 1 (Basic Systems): Building out the underlying math frameworks and foundations. Phase 2 (CLI Interface): Creating simple command-line helper functions. Phase 3 (GUI Interface): Designing a desktop app version with a clean installation setup. Phase 4 (Web Interface): Deploying a browser version so anyone can use it without downloading a thing. (Note: Organized it this way to work around the Stardance demo link limits while keeping the scope clear). Coded the Universal Time Converter Wrote the core function that converts calendar dates directly into raw seconds. Made sure it seamlessly handles both Kerbal time standards and real-world J2000 epoch timelines. What I Learnt Numba memory management: I found out that numba (the Python library I’m using to get close to C++ speeds) really struggles when handling pointers and raw memory addresses. Python can actually segfault: It actually threw a segmentation fault—which felt crazy to see inside Python code! Because of this, using nb.defered_type() is completely out of the picture for this architecture, so I’ll have to use something like scipy and numpy . well for your entertainment, here is a screenshot of me trying to figure out why the hell was VS code giving me a problem (i forgot a semicolon on the line before):"}]...
|
Title: Kerbal Gravity Program by @Systemic_speed | Title: Kerbal Gravity Program by @Systemic_speed | Stardance
Devlogs:
Devlog 1: Kerbal Gravity Program (KGP) KGP is a mission planning tool I am building for KSP players and actual aerospace engineers to map out complex trajectories. Loosely based on Skyfield , Poliastro and trajectorize , The goal is to make it easy to plot out massive interplanetary trips, whether you are trying to reach Jool and Sarnus (with the Outer Planets Mod) or calculating a real-world journey out to Neptune. What I Did Today Mapped out the 4-phase development roadmap Decided to use a mix of C++ for raw execution speed and Python for fast development. Phase 1 (Basic Systems): Building out the underlying math frameworks and foundations. Phase 2 (CLI Interface): Creating simple command-line helper functions. Phase 3 (GUI Interface): Designing a desktop app version with a clean installation setup. Phase 4 (Web Interface): Deploying a browser version so anyone can use it without downloading a thing. (Note: Organized it this way to work around the Stardance demo link limits while keeping the scope clear). Coded the Universal Time Converter Wrote the core function that converts calendar dates directly into raw seconds. Made sure it seamlessly handles both Kerbal time standards and real-world J2000 epoch timelines. What I Learnt Numba memory management: I found out that numba (the Python library I’m using to get close to C++ speeds) really struggles when handling pointers and raw memory addresses. Python can actually segfault: It actually threw a segmentation fault—which felt crazy to see inside Python code! Because of this, using nb.defered_type() is completely out of the picture for this architecture, so I’ll have to use something like scipy and numpy . well for your entertainment, here is a screenshot of me trying to figure out why the hell was VS code giving me a problem (i forgot a semicolon on the line before):
Devlog 2: Kerbal Gravity Program (KGP) KGP is a mission planning tool I’m building for KSP players and actual aerospace engineers to map out complex trajectories. It’s loosely based on libraries like Skyfield , Poliastro , and trajectorize . The ultimate goal is to make it easy to plot out massive interplanetary trips, whether you’re trying to reach Jool and Sarnus (with the Outer Planets Mod) or calculating a real-world journey out to Neptune. What I did today Today was way more math-heavy than I expected. I spent most of my time building out the core infrastructure: The Orbit class to actually handle orbital mechanics. The Body class for celestial bodies and barycenters. The absolute_position function to figure out the exact coordinates of an object in a nested system, tracking it all the way back to the root central body as the origin. What I learned Planet tracking is wild: The sheer amount of math required to find the exact position of a planet at a specific timestamp is honestly mind-boggling. It took a lot of staring at equations, but once I finally understood the logic, implementing it became a lot smoother. The heavy lifters are terrifying: The core system is going to rely on a Lambert solver and an RK4 integrator. I’ll be honest—these algorithms are so intensely complex that it looks like scribbles on paper. Anyway, here is a small test run of the Python prototype in action:
Devlog 3: Kerbal Gravity Program KGP is a mission planning tool I’m building for KSP players and actual aerospace engineers to map out complex trajectories. It’s loosely based on libraries like Skyfield , Poliastro , and Trajectorize . The ultimate goal is to make it easy to plot out massive interplanetary trips, whether you’re trying to reach Jool and Sarnus (with the Outer Planets Mod) or calculating a real-world journey out to Neptune. Hey there, i am very, very sorry for the wait, got caught up in school and illness, so ima try and be more punctual, maybe a devlog every week? well, we will see if my timetable is free or “unstable” What I did today Finally make a Lambert solver, the math was insanely hard and i am still getting insanely wrong numbers. (like a burn of 11,000 m/s to go to Duna in perfect conditions). for the Lambert solver, i had to create a new class, the Spacecraft class, this is the actual spacecraft that is going to go on the arduous journey to another planet or moon (basically a moving body class). I am in the process of making the Orbit class, the LambertSolver class and the solve_anomaly() function resistant to non elliptic orbits. well then here is Ruff and Vs code screaming at me because of a single equal sign
Devlog 4: Kerbal Gravity Program (KGRP) KGP—well, actually let’s call it KGRP now because apparently “kgp” is already taken by some Kubernetes stuff, and I don’t want stuff breaking anyone’s cloud infrastructure—is a mission planning tool I’m building for KSP players and actual aerospace engineers to map out complex trajectories. It’s loosely based on libraries like Skyfield , Poliastro , and Trajectorize . The ultimate goal is to make it easy to plot out massive interplanetary trips, whether you’re trying to reach Jool and Sarnus (with the Outer Planets Mod) or calculating a real-world journey out to Neptune. What I did today Well, today was mostly chill on the numerical part. I got the RKF(4)5 adaptive step solver fully up and running, and the burns produced by the Lambert solver are perfect and insanely accurate. The physics side of things is feeling really solid. But then came the C++ transition, which immediately humbled me. For hours, this was only working in Python because CMake seriously hates me. Seriously, why does a plain text file have so much attitude? Even though I explicitly gave it the include paths in VS Code, the thing still refused to find where Eigen was. I was getting so incredibly frustrated that I was genuinely on the verge of ragequitting, deleting the whole directory, and typing sudo rm -rf out of pure spite. And then I realized what a complete idiot I was being. CMake wasn’t failing to compile the library. It had actually built the thing perfectly. The issue was that I was stubbornly typing ./build/kgrvs like a caveman, completely missing the fact that the compiled binary was sitting right there inside ./build/Release/kgrvs . Once I actually typed the right path, the C++ code ran flawlessly and matched my Python results perfectly down to the decimal point. The engine is officially alive, and I need to go look at a wall for a few minutes to recover from the self-inflicted psychological damage. (BTW here is me almost bricking my computer)
Devlog 5: Kerbal Gravity Program KGRP is a mission planning tool I’m building for KSP players and actual aerospace engineers to map out complex trajectories. It’s loosely based on libraries like Skyfield , Poliastro , and Trajectorize . The ultimate goal is to make it easy to plot out massive interplanetary trips, whether you’re trying to reach Jool and Sarnus (with the Outer Planets Mod) or calculating a real-world journey out to Neptune. What Happened Today We need to talk about a major turning point for this project. Today was the day I finally broke. I sat down ready to write some beautiful orbital physics code, but instead, I spent hours staring at a screen full of red squiggly lines. I was trapped in a seemingly endless loop of configuring MinGW paths, updating JSON files, wrestling with Conan, and trying to force VS Code to recognize where the Eigen math library was hiding. I realized I was spending 90% of my energy fighting a stubborn C++ compiler and only 10% actually thinking about gravity and orbital transfers. As a solo developer trying to build something massive, that is a recipe for burning out. I was totally fed up. So, I had a choice: keep sinking precious hours into configuration hell, or do something radical to save my velocity. I chose velocity. I opened up my file explorer, went to the project root, and completely ripped out the entire cpp folder. Shift + Delete. Gone. (To any C++ purists reading this: I am deeply sorry, but it had to be done.) By committing to a pure Python architecture, I can keep the code lean, fast, and remarkably lightweight (for an interpreted language): NumPy : We are using the best library for 3D math operations. SciPy : Gives me instant access to rock-solid root-finding algorithms. This means my Lambert solver is going to be incredibly robust and fast. Using this, We can get C++ execution speeds with the absolute bliss of plain Python syntax. Pyrr : A new Library that i am going to learn, this acts as a wrapper for numpy, allowing for easy rendering moderngl_window a pythonic librayry that allows one to easily show and render stuff. Next Steps Now that the compiler weight is off my back, I can actually focus on making this program amazing. The real fun starts now: Setting up a clean Python environment with scipy , pyrr , moderngl and numpy installed. Rendering stuff (Yahoo!). Building the profile structures for the Kerbol system and our real-world solar system. well then here is me installing pyrr and thinking of how to use and learn the library.
Devlog 6: Kerbal Gravity Program (KGRP) KGRP is a mission planning tool I’m building for KSP players and actual aerospace engineers to map out complex trajectories. It’s loosely based on libraries like Skyfield , Poliastro , and Trajectorize . The ultimate goal is to make it easy to plot out massive interplanetary trips, whether you’re trying to reach Jool and Sarnus (with the Outer Planets Mod) or calculating a real-world journey out to Neptune. What happened today Today was a very, very buggy day. I had to tackle the core rendering systems, but I ended up running a grueling gauntlet through almost every Python graphics library out there—Panda3D, Ursina, ModernGL, VPython, and more. Every single one of them introduced some kind of blocking issue: Windows that were supposed to pop up via Tkinter or Pygame-CE started doing random things like teleporting wildly across my screen or rendering with completely broken layout dimensions. Even when a window finally initialized and stayed stable, it would just mock me with a dead black screen entirely missing our blobs of color (the actual planets and calculated orbit lines). This black-screen loop is exactly what hit me when I switched over to PyVista. Why the Viewport went Black Staring into a blank 3D canvas is a rite of passage when writing an engine from scratch. After tracking down the pipeline bugs, the black screen in PyVista boiled down to three classic astrodynamics simulation mistakes: The Compound Drift Bug ( mesh.translate ) Using mesh.translate(inplace=True) directly mutates the underlying vertex memory of the sphere meshes. Because my physics engine loop advances frames based on absolute coordinates ( get_absolute_pos_at_ut ), relative delta transforms compounded exponentially. Within frame one, the planets physically flew millions of kilometers away from the camera. The Camera Initialization Trap Setting camera_position = 'iso' while the newly instantiated planet objects were still sitting uninitialized at (0, 0, 0) forced the viewport to lock its focus onto a microscopic bounding box. The moment the first timer tick updated positions, everything teleported way past the active field of view. Scaling Using a singular scale factor for both orbit diameters and planetary dimensions created a massive rendering mismatch. A planet with a 6,000 km radius shrinks down to a fraction of a single pixel when drawn on a canvas scaled to capture massive astronomical unit (AU) trajectories, rendering it invisible. Next Flight Steps for Devlog 6 With a stable graphics viewport finally up and running, the graphics engine foundation is secure. The next challenge is implementing the actual trajectory planning functionality. My primary focus items for the next devlog will be: The Trajectory Tracer: Working out how to render a dynamic, rolling polyline tail behind a Spacecraft body as it traces arcs across different coordinates. Camera Tracking Hooks: Hooking into interactor mouse clicks so that double-clicking a planet or vessel pins the camera target matrix to that object, keeping it centered even at high time warp rates. Optimizing Kepler Solvers: Ensuring the underlying analytical Newton-Raphson solvers can handle high eccentricities without dragging down frame rates.
Devlog 7: Kerbal Gravity Program (KGRP) For anyone who’s new here, KGRP is a mission planning tool I’m building for KSP (and hopefully real-world missions too). The goal is to make planning orbital transfers and interplanetary missions a lot easier. Think of it as something inspired by libraries like Skyfield and Poliastro , but with a bigger focus on actually planning missions. What happened today? Today was surprisingly productive and useful. The biggest thing is that the renderer finally works. I spent way too long fighting with it over the past few days, so it’s nice to finally be able to move planets around without everything exploding. I also added a few other things: You can now create entire planetary systems from a planet.json file. Added adapters for PySide6 and NiceGUI , so there are a couple of different ways to use the renderer now. Started working on a more realistic gravity simulator that can deal with things like Lagrange points. KGRP finally has an actual logo (\(^▽^)/) instead of me pretending the text was good enough for docs and stuff. One thing I still need to fix is the JSON loader. Right now it only really likes absolute paths, which is… less than ideal. The renderer tried to gaslight me I swear I’m not making this up. Earlier today I found this absolutely cursed bug where, if you flew the camera into the Sun and zoomed out, the whole scene turned into this weird fisheye effect with random lines stretching across the screen. I was already mentally preparing myself to spend the next few hours digging through camera code and VTK documentation… …and then it just stopped happening. I didn’t fix it. I didn’t even change anything related to the camera. It just… disappeared. So either I accidentally fixed it without realizing, or it’s waiting until I show someone the project before it decides to come back. What’s next? Nothing too exciting, mostly polishing things up. Fix the JSON loader. Squash whatever bugs are still hiding in the renderer. Improve the CLI a bit more. Anyway, here’s the renderer doing the thing (oh, gotta fix that) and the logo (idk if it’s good, comment about it).
Devlog 8: Kerbal Gravity Program For anyone who’s new here, KGRP is a mission planning tool I’m building for KSP (and hopefully real-world missions too). The goal is to make planning orbital transfers and interplanetary missions a lot easier. Think of it as something inspired by libraries like Skyfield and Poliastro , but with a bigger focus on actually planning missions Today and the days after i gave my last devlog were actually useful, i mainly just created a new class based system (yes i am forced to, because my idea needs tooo many moving parts) called the Ticket : The Ticket allows you to plan entire journeys using TicketEvents , stuff that define what can happen to a spacecraft (14 of them). for example, you can have a ticket that contains a maeuver, a coast, an rcs translation, a docking and more. and one more thing, instead of a CLI (one command and forget), i am instead making a REPL (it remembers what you did). so yeah, that sums most of it up and also i made a new banner for KGRP (kinda yay???) What’s next so the main thing is to just start making the REPL using prompt-toolkit and other stuff. until then, see ya
Devlog 9 — Kerbal Gravity Program: the REPL is (almost) done No devlog last week — life happened, then OpenCode helped me absolutely cook. Newcomers: KGRP is a mission planner for KSP (runs outside the game). You define a spacecraft, stack events on a timeline, and the sim runs them. Plan in the tool, fly in the game. Where we are The REPL is nearly feature-complete. Every mission action is a TicketEvent — coast, maneuver, burn, engine toggle, science. The REPL never touches your ship directly; it just advances a ticket in UT and events fire when the timeline reaches them. One plan drives the renderer, physics, and save file. Also closed the loop on “one source of truth”: the fancy integrator used to run in a vacuum (zero gravity) when fired from a ticket. Now go , advance , and reset all agree on where you are. go Pick a start and end orbit from the presets and it works out burns, coasting, and delta-v, then schedules them: > go current moon:3a Transfer plan: Current (200,000m circular, 0.0 deg) -> Mun orbit (11,400,000m circular, 0.0 deg) (about Kerbin) Burns: 2 Total delta-v: 1,112.7 m/s Duration: 27,130.1s burn @ 0.0s dv=764.2 m/s Raise apoapsis to transfer coast 0.0s -> 27,130.1s Coast to apoapsis burn @ 27,130.1s dv=348.5 m/s Circularize / match target Resulting orbit: pe=12,000,000m ap=12,000,000m i=0.0 deg around Kerbin Presets are editable (and saveable to presets.json ); the planner core is a plain importable function ( go_plan(ticket, ...).total_dv ). Usability Time input isn’t a math exam: advance 2d 5h , time "Year 2, Day 100" . Per-use overrides without touching presets: go current preset:molniya incl=30 . go shows the plan and asks before committing (gradual / instant / cancel). edit now handles ships, not just bodies: mass, fuel, orbit elements. New-ticket wizard hands you an engine and 3,000 kg of fuel instead of a paperweight. After a reset you can clear/redo the timeline without fighting the guard. What’s next Some math is still coarse: plane changes are exact only for moon targets, synchronous orbits are a placeholder (no body rotation yet), arg-p/LAN drift isn’t modeled, and error messages need work — for when you type advance 5 bananas . Fun one I found: escaping at exactly escape velocity puts the orbit at eccentricity 1.000000 and the math gives up — the craft freezes and frame switches / go turn to nonsense. Interplanetary go is broken because of it, but burning slightly past escape fixes it (properly hyperbolic, maths happy). Just needs wiring in. In the meantime Planning to put it up on PyPi and hope it works
Ships:
Kerbal Gravity Program: SHIP - 1 Any KSP player knows the pain of planning a whole journey, then the Kraken wipes it and sends you back to the pad. Real missions are the same grind (see Cassini-Huygens: Cassini’s trajectory ). So I built KGRP — a mission planner for KSP you drive from a REPL or code, to plan and understand trips to other planets. Crash course pip install kgrp # Python 3.10+ kgrp # start the REPL help # every command, flag, and use Requirements Built on numpy (math), scipy (integration/solving), and pyvista (orbit and trajectory visualization), with rich and prompt-toolkit powering the REPL. What was challenging The math was the hard part — RKF(4)5 (Runge-Kutta-Fehlberg 4(5)), an adaptive-step integrator, was an absolute pain to get right. Shipping a real library was the other half; I’d made sites and small CLIs, but wasn’t sure this would hold together. What I’m proud of First thing I’ve ever put on PyPI. Along the way I got real with numpy, scipy, pyvista, and building a CLI/REPL people can actually use. A note on AI I used AI to help squash bugs and for the basic beautification of the README. The planning math and the tool itself are mine; the AI just helped me clean up and unstick the rough parts. Try it It’s out — test it, throw it at the wall, and send notes via feedback. P.S. There are a few easter eggs hiding in the errors. Go find them. Happy orbiting!!!...
|
1792993841.1496034
|
1793080241.1496034
|
|
38831
|
bunniesin.love by @miniaturity | Stardance
|
miniaturity
|
1
|
43.8
|
636
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-28T19:04:59Z", "hours": 33.0, "multiplier": 19.13, "payout": 636, "blessing": "neutral", "text": "I made a web-based daily puzzle game inspired by enclose.horse, centered around reuniting two bunny lovers, whose hearts are tethered together! It was incredibly difficult creating my own tile rendering system, and I had to makeshift an auto-tile/rule-tile system for the editor, and to make creating levels easy. I also had to figure out how to animate the tiles, which is harder than it seems. Creating the editor was the hardest part; without a game engines help, I had to create a lot manually. I am definitely proud of what I made though, and now all I have to do is get more levels to put in! Make sure to check out the editor and tutorial while you test :) they’re the best parts.", "repo": "https://github.com/miniaturity/lovebunny", "demo": "https://bunniesin.love"}]...
|
[{"post_id": 59905, "ts": "202 [{"post_id": 59905, "ts": "2026-09-01T22:38:13Z", "hours": 4.9831, "text": "carrots, and an A* algorithm! carrot game mechanic! new entity type: carrots! they can be placed on top of existing tiles. carrots subtract 3 from your move count, when a bunny consumes a carrot! consume a carrot by moving a bunny on top of a carrot. optimized solving algorithm, accounting for carrots instead of the O(N^2 * 2^C * C) BFS solver, I made a O(N^2 * 2^C * (C + log N)) A* algorithm! to avoid doing a linear scan over the board for every carrot, i implemented a bigint bitmask and used brian kernighan’s bit trick to efficiently read carrots in O(1) time. although the BFS technically has a better worse case, A* uses a distance heuristic to prioritize paths that lead towards goals, avoiding dead paths. finally, ive implemented creating a web worker to solve the solution on a different thread, preventing the UI from freezing while the solver tries to solve the level. undo/redo in editor used stacks for undoing/redoing in editor, available through ctrl + z or cmd + z/ctrl + y or cmd + y"}, {"post_id": 58835, "ts": "2026-08-31T12:44:54Z", "hours": 5.8164, "text": "more QoL features and guidance!! date traversal you can now move between puzzles from previous dates. added undo feature you can now undo your last move, but only one undo at a time. added extra guidance through dialogue if you are a new user, it shows you where the editor and tutorial are (for clarity) added confirm submission you now have to confirm the submission of your solution, so you don’t accidently submit a bad solution. added solution history if you solved the puzzle, and decided to reset, you can now always go back to the best solution you previously had. editor QoL you now have to confirm your upload. also gives you the option to change the name/author directly in the modal."}, {"post_id": 56816, "ts": "2026-08-28T18:58:41Z", "hours": 7.1142, "text": "full editor and user uploading! upload levels directly to database; share w/ links You can now upload your levels to the database and easily share them! Anyone can play user-made levels if they have the link. Keep in mind, though, there are rate limits to uploading and you can get your IP restricted for the day. added author/level naming User-made levels can now be renamed using the editor, instead of direct file changing in an exported file. polished win modal Stylized the histogram and made it easy to understand the statistics. Also added a share feature that copies text to your clipboard."}, {"post_id": 39257, "ts": "2026-08-02T03:31:27Z", "hours": 2.5056, "text": "beta release!! connected cloudflare’s R2 bucket for daily levels I can now easily add daily levels by directly adding them to the database. You can only solve the daily level once per day, kept through a unique user ID stored in localStorage (which can be easily overridden, but I don’t really care.) connected import/export type to bucket for easy drop-in User-made levels can be export in a JSON format, and imported. mobile compatibility Added on-screen buttons for mobile users, since they don’t have a keyboard. sickass domain Purchased the bunniesin.love domain for $7! Totally worth it"}, {"post_id": 38165, "ts": "2026-07-31T12:53:21Z", "hours": 7.9661, "text": "bunny level editor! created a full level editor. You can now navigate to the level editor (top left button) and create a level! Control the board size, bunny locations, and every tile in the board. Export and import levels to save them. You can also see whether your puzzle is solvable or not, and how many moves it takes."}, {"post_id": 34433, "ts": "2026-07-25T04:19:37Z", "hours": 3.5133, "text": "tutorial guide dude :3 interactive tutorial levels There are now 3 total tutorial levels, with me guiding the user through all of them. Each level progressively gets harder, and teaches the user how to solve a puzzle. optimized for phone The board is now optimized for display on phones; controls are WIP. overhauled entity handling Entity infrastructure can now be easily extended for feature such as buttons or other items. However, the solver can’t use these features, so I’m holding off on implementing them."}, {"post_id": 33884, "ts": "2026-07-24T05:01:28Z", "hours": 3.5675, "text": "improved UI; added level creator page and more tiles. added an introduction modal for new players Players that have never visited the website before are now shown an intro modal. This can direct them to play without guides, or play the tutorial. level creator page Full implementation WIP, but I created an editor version of the game so that the user can click to paint tiles. It was pretty annoying to figure out how to detect mouse events and cast them to a tile, and mutate the board state. Also really difficult to add a grid and hover effects. moar tiles More tiles, more fun :3. Added variations of grass and walls. improved ui Now displays the day and level name, inside a carrot. Probably the most creative and original idea I’ve ever had. I’m really the best web designer that has ever lived."}, {"post_id": 33651, "ts": "2026-07-23T18:49:16Z", "hours": 8.6053, "text": "functional rule tile/tilemap system using canvas + game state machine tilemap system Created a full tilemap/tileset painting system from scratch. Uses HTML5 canvas to paint the tilemap, and a spritesheet for the textures. Pretty difficult to implement, but since I know how game engines work, I can infer on how to implement it in svelte, using state runes. game state machine The game now relies on a single instance of the state machine as a source of truth (class Game). Can be easily extended for future features."}]...
|
Title: bunniesin.love by @miniaturity | Stardance
Title: bunniesin.love by @miniaturity | Stardance
Devlogs:
functional rule tile/tilemap system using canvas + game state machine tilemap system Created a full tilemap/tileset painting system from scratch. Uses HTML5 canvas to paint the tilemap, and a spritesheet for the textures. Pretty difficult to implement, but since I know how game engines work, I can infer on how to implement it in svelte, using state runes. game state machine The game now relies on a single instance of the state machine as a source of truth (class Game). Can be easily extended for future features.
improved UI; added level creator page and more tiles. added an introduction modal for new players Players that have never visited the website before are now shown an intro modal. This can direct them to play without guides, or play the tutorial. level creator page Full implementation WIP, but I created an editor version of the game so that the user can click to paint tiles. It was pretty annoying to figure out how to detect mouse events and cast them to a tile, and mutate the board state. Also really difficult to add a grid and hover effects. moar tiles More tiles, more fun :3. Added variations of grass and walls. improved ui Now displays the day and level name, inside a carrot. Probably the most creative and original idea I’ve ever had. I’m really the best web designer that has ever lived.
tutorial guide dude :3 interactive tutorial levels There are now 3 total tutorial levels, with me guiding the user through all of them. Each level progressively gets harder, and teaches the user how to solve a puzzle. optimized for phone The board is now optimized for display on phones; controls are WIP. overhauled entity handling Entity infrastructure can now be easily extended for feature such as buttons or other items. However, the solver can’t use these features, so I’m holding off on implementing them.
bunny level editor! created a full level editor. You can now navigate to the level editor (top left button) and create a level! Control the board size, bunny locations, and every tile in the board. Export and import levels to save them. You can also see whether your puzzle is solvable or not, and how many moves it takes.
beta release!! connected cloudflare’s R2 bucket for daily levels I can now easily add daily levels by directly adding them to the database. You can only solve the daily level once per day, kept through a unique user ID stored in localStorage (which can be easily overridden, but I don’t really care.) connected import/export type to bucket for easy drop-in User-made levels can be export in a JSON format, and imported. mobile compatibility Added on-screen buttons for mobile users, since they don’t have a keyboard. sickass domain Purchased the bunniesin.love domain for $7! Totally worth it
full editor and user uploading! upload levels directly to database; share w/ links You can now upload your levels to the database and easily share them! Anyone can play user-made levels if they have the link. Keep in mind, though, there are rate limits to uploading and you can get your IP restricted for the day. added author/level naming User-made levels can now be renamed using the editor, instead of direct file changing in an exported file. polished win modal Stylized the histogram and made it easy to understand the statistics. Also added a share feature that copies text to your clipboard.
more QoL features and guidance!! date traversal you can now move between puzzles from previous dates. added undo feature you can now undo your last move, but only one undo at a time. added extra guidance through dialogue if you are a new user, it shows you where the editor and tutorial are (for clarity) added confirm submission you now have to confirm the submission of your solution, so you don’t accidently submit a bad solution. added solution history if you solved the puzzle, and decided to reset, you can now always go back to the best solution you previously had. editor QoL you now have to confirm your upload. also gives you the option to change the name/author directly in the modal.
carrots, and an A* algorithm! carrot game mechanic! new entity type: carrots! they can be placed on top of existing tiles. carrots subtract 3 from your move count, when a bunny consumes a carrot! consume a carrot by moving a bunny on top of a carrot. optimized solving algorithm, accounting for carrots instead of the O(N^2 * 2^C * C) BFS solver, I made a O(N^2 * 2^C * (C + log N)) A* algorithm! to avoid doing a linear scan over the board for every carrot, i implemented a bigint bitmask and used brian kernighan’s bit trick to efficiently read carrots in O(1) time. although the BFS technically has a better worse case, A* uses a distance heuristic to prioritize paths that lead towards goals, avoiding dead paths. finally, ive implemented creating a web worker to solve the solution on a different thread, preventing the UI from freezing while the solver tries to solve the level. undo/redo in editor used stacks for undoing/redoing in editor, available through ctrl + z or cmd + z/ctrl + y or cmd + y
Ships:
I made a web-based daily puzzle game inspired by enclose.horse, centered around reuniting two bunny lovers, whose hearts are tethered together! It was incredibly difficult creating my own tile rendering system, and I had to makeshift an auto-tile/rule-tile system for the editor, and to make creating levels easy. I also had to figure out how to animate the tiles, which is harder than it seems. Creating the editor was the hardest part; without a game engines help, I had to create a lot manually. I am definitely proud of what I made though, and now all I have to do is get more levels to put in! Make sure to check out the editor and tutorial while you test :) they’re the best parts....
|
1792961543.966667
|
1793047943.966667
|
|
3460
|
Ascend - The Chosen One by @revankotapati | Starda Ascend - The Chosen One by @revankotapati | Stardance...
|
revankotapati
|
1
|
115.0
|
634
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-17T13:31:36Z", "hours": 115.0, "multiplier": 9.99, "payout": 634, "blessing": "neutral", "text": "This is a 3D FPS game that has a campaign and arcade mode. The player progresses through worlds and defeats enemies to win the campaign. A player’s stats are upgradable, and points to upgrade them are earned through finishing levels. There are 5 worlds and 10 levels each, with a boss at the 10th level. Once the final boss is defeated, the game ends with special aspects, which I do not want to ruin, and you can either continue the game or exit. I faced multiple challenges when making this game. I had to learn Godot and asset building for the first time. It was a long process, so I spent more time learning than coding. I feel that it turned out to be a decent game, but it was quite a large .exe file, and when zipped, it was 32MB. It runs very slowly on my computer, and that’s why I made this project. I built it so that I can get points and buy a new one.", "repo": "https://github.com/RevanK10/Ascend---The-Chosen-One", "demo": "https://revank.itch.io/ascend-the-chosen-one"}]...
|
[{"post_id": 30123, "ts": "202 [{"post_id": 30123, "ts": "2026-07-17T13:20:37Z", "hours": 3.2883, "text": "I finished the game, as far as I know. I fixed all the enemy spawning and their location off the ground. I added all enemy assets to the game and also added a piercing spear upgrade to the game, which allows the player to hit multiple enemies in a row with a single projectile. I also added the arcade mode to the game with minibosses and bosses every few waves."}, {"post_id": 24081, "ts": "2026-07-07T12:44:25Z", "hours": 7.0664, "text": "I fixed the enemy meshes, so they are on the ground instead of in the ground. I also was able to fix some of the spawning errors, with the player being launched into the sky at the start of the level. At this point, I am working on adding the base enemies to the game, which I am trying to find a way to do dynamically to ensure that the sheer number of enemy instances does not slow the game down. The size of the boss enemies is still an issue, however, but I will fix this soon. I feel like I am going down a rabbit hole. As I implement a feature, I find like 10 more that I could implement to make this game better."}, {"post_id": 20723, "ts": "2026-07-02T12:09:26Z", "hours": 6.2111, "text": "For this devlog, I have not achieved much other than adding a few more assets to the worlds. Right now, I am trying to figure out how to add the meshes for my enemies. I created a single base enemy scene, and the code is not supporting the addition of paths to the mesh objects. I also added cinematic cutscenes with the player and other characters. They look horrible right now, but once the meshes go in, they will look much better. The spear is the only mesh right now."}, {"post_id": 18706, "ts": "2026-06-29T21:50:54Z", "hours": 17.9656, "text": "Since the last post, I finished designing the worlds and added basic assets. For example, the 3rd world, which consists of human enemies, has an outpost, castle, tarps, and much more. Each world has its own theme, so it looks vastly different as the player goes through each world. Also, I forgot to record my 3d models, but I finished most of those as well. I only have 2-3 enemy models left. I coded the assets so they would only generate when the player accesses the specific world, so it takes up less space. I also improved the HUD, and added cutscenes throughout the game. Currently, the cutscenes are just text, but I plan to make them videos of the player interacting with the characters. I will also finish the rest of the 3d models and add NPCs that grant sidequests. However, the sidequests might be for another time. I predict that I am 80-85% done with the base game."}, {"post_id": 13760, "ts": "2026-06-22T15:38:49Z", "hours": 16.1503, "text": "I finished the basics of the new game’s implementation. The main menu UI is improved and the player movement and projectile throwing functionality looks better as well. Within the UI, I was able to ensure that the color changes as the user hovers and presses the buttons. The title design will be improved and I want to make the background more transparent and add a picture of the main character’s figure on the main menu. My next steps also include making a few levels and finish updating all of the UI. I have spent a lot of time fixing the errors I have run into and combing through Godot documentation."}, {"post_id": 10576, "ts": "2026-06-17T11:45:24Z", "hours": 39.7478, "text": "Update 3 This game was such a headache to make. I initially finished a working prototype of this game with an arcade mode where the enemies spawn based on AI, which the user can call through the API. However, I still had to add the textures and my designed 3d models. When I tried to put more importance on the UI for both the player’s side, like the location of the health bar, and the general UI, like the main menu screen, I found that any change crashed it. I spent hours reading the Godot documentation to understand the organization of the UI, but to no success. So, I switched gears and tried again, following an old tutorial from Godot 3, which I soon realized would not work. Therefore, I scrapped that and created another version that I hope will work. If this does not work, I would have to rely on my prototype and complete it. As my first game, it’s not leaving a good first impression of game development, which I have heard many good things about. Also, the prototype’s UI isn’t great, but it functions decently. The capsule in different colors acts as the enemies, but I have already attempted to design some low-poly 3d models."}, {"post_id": 4916, "ts": "2026-06-08T14:43:39Z", "hours": 17.5036, "text": "Update 2 Finished the world and arcade part of the game. After further consideration, I decided to add a story mode to the game and design more models. I also finished 2 out of 3 models for my enemies and add effects and scenes to the game screen. However, I will have to create a new project and start again with the world and characters to better organize my scenes and scripts in Godot. This is my first attempt at game development, so I am attempting to figure out how I can improve my code and organization quality while improving my game. Another feature that I have been able to add is the addition of special projectiles: 1. Projectiles that act as magnets and pull all enemies together 2. Projectiles that chain hit multiple enemies and stop them for a brief amount of time 3. Projectiles that explode and impact multiple enemies Below is an image of my code for my new project. I will continue to update on my journey."}, {"post_id": 1624, "ts": "2026-06-03T19:14:58Z", "hours": 7.155, "text": "Created the environment, enemies, character and the basic UI. My next task is to work on enhancing the UI and improving the physics of the game, especially movement."}]...
|
Title: Ascend - The Chosen One by @revankotapati | Title: Ascend - The Chosen One by @revankotapati | Stardance
Devlogs:
Created the environment, enemies, character and the basic UI. My next task is to work on enhancing the UI and improving the physics of the game, especially movement.
Update 2 Finished the world and arcade part of the game. After further consideration, I decided to add a story mode to the game and design more models. I also finished 2 out of 3 models for my enemies and add effects and scenes to the game screen. However, I will have to create a new project and start again with the world and characters to better organize my scenes and scripts in Godot. This is my first attempt at game development, so I am attempting to figure out how I can improve my code and organization quality while improving my game. Another feature that I have been able to add is the addition of special projectiles: 1. Projectiles that act as magnets and pull all enemies together 2. Projectiles that chain hit multiple enemies and stop them for a brief amount of time 3. Projectiles that explode and impact multiple enemies Below is an image of my code for my new project. I will continue to update on my journey.
Update 3 This game was such a headache to make. I initially finished a working prototype of this game with an arcade mode where the enemies spawn based on AI, which the user can call through the API. However, I still had to add the textures and my designed 3d models. When I tried to put more importance on the UI for both the player’s side, like the location of the health bar, and the general UI, like the main menu screen, I found that any change crashed it. I spent hours reading the Godot documentation to understand the organization of the UI, but to no success. So, I switched gears and tried again, following an old tutorial from Godot 3, which I soon realized would not work. Therefore, I scrapped that and created another version that I hope will work. If this does not work, I would have to rely on my prototype and complete it. As my first game, it’s not leaving a good first impression of game development, which I have heard many good things about. Also, the prototype’s UI isn’t great, but it functions decently. The capsule in different colors acts as the enemies, but I have already attempted to design some low-poly 3d models.
I finished the basics of the new game’s implementation. The main menu UI is improved and the player movement and projectile throwing functionality looks better as well. Within the UI, I was able to ensure that the color changes as the user hovers and presses the buttons. The title design will be improved and I want to make the background more transparent and add a picture of the main character’s figure on the main menu. My next steps also include making a few levels and finish updating all of the UI. I have spent a lot of time fixing the errors I have run into and combing through Godot documentation.
Since the last post, I finished designing the worlds and added basic assets. For example, the 3rd world, which consists of human enemies, has an outpost, castle, tarps, and much more. Each world has its own theme, so it looks vastly different as the player goes through each world. Also, I forgot to record my 3d models, but I finished most of those as well. I only have 2-3 enemy models left. I coded the assets so they would only generate when the player accesses the specific world, so it takes up less space. I also improved the HUD, and added cutscenes throughout the game. Currently, the cutscenes are just text, but I plan to make them videos of the player interacting with the characters. I will also finish the rest of the 3d models and add NPCs that grant sidequests. However, the sidequests might be for another time. I predict that I am 80-85% done with the base game.
For this devlog, I have not achieved much other than adding a few more assets to the worlds. Right now, I am trying to figure out how to add the meshes for my enemies. I created a single base enemy scene, and the code is not supporting the addition of paths to the mesh objects. I also added cinematic cutscenes with the player and other characters. They look horrible right now, but once the meshes go in, they will look much better. The spear is the only mesh right now.
I fixed the enemy meshes, so they are on the ground instead of in the ground. I also was able to fix some of the spawning errors, with the player being launched into the sky at the start of the level. At this point, I am working on adding the base enemies to the game, which I am trying to find a way to do dynamically to ensure that the sheer number of enemy instances does not slow the game down. The size of the boss enemies is still an issue, however, but I will fix this soon. I feel like I am going down a rabbit hole. As I implement a feature, I find like 10 more that I could implement to make this game better.
I finished the game, as far as I know. I fixed all the enemy spawning and their location off the ground. I added all enemy assets to the game and also added a piercing spear upgrade to the game, which allows the player to hit multiple enemies in a row with a single projectile. I also added the arcade mode to the game with minibosses and bosses every few waves.
Ships:
This is a 3D FPS game that has a campaign and arcade mode. The player progresses through worlds and defeats enemies to win the campaign. A player’s stats are upgradable, and points to upgrade them are earned through finishing levels. There are 5 worlds and 10 levels each, with a boss at the 10th level. Once the final boss is defeated, the game ends with special aspects, which I do not want to ruin, and you can either continue the game or exit. I faced multiple challenges when making this game. I had to learn Godot and asset building for the first time. It was a long process, so I spent more time learning than coding. I feel that it turned out to be a decent game, but it was quite a large .exe file, and when zipped, it was 32MB. It runs very slowly on my computer, and that’s why I made this project. I built it so that I can get points and buy a new one....
|
1792968770.0127282
|
1793055170.0127282
|
|
16752
|
MeowOS! by @CharlieCatMeow | Stardance
|
CharlieCatMeow
|
3
|
53.0
|
633
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-29T11:29:34Z", "hours": 8.0, "multiplier": 14.98, "payout": 121, "blessing": "neutral", "text": "MeowOS! A web based operating system! Built with HTML, CSS, JavaScript and my sanity. I added a few new features! new themes the browser URL bar now works! yay Added window resizing for most windows. Updated the notes app so the delete button doesn’t remove all pages Added a typing and clicking sound effect (toggle in settings) You can now hide the icon bar when a window is maximized by going into settings. Changed the terminal commands to be more intuitive Fixed a bunch of bugs Also did a bunch of stuff you can’t see to clean up the code, it was pretty messy. (Please read the README as well) Enjoy!", "repo": "https://github.com/CharlieTheCatMeow/WebOS", "demo": "https://charliethecatmeow.github.io/WebOS/"}, {"ship_num": 2, "ts": "2026-07-13T15:29:09Z", "hours": 33.0, "multiplier": 15.49, "payout": 512, "blessing": "neutral", "text": "✨ MeowOS! ✨ MeowOS! is a web based operating system built to enhance productivity with a wide range of apps to be used. It is built on HTML, CSS and Javascript. ✨Apps✨: Introduction (a guide to the website) Stopwatch (Keep track of how much time has past) Notes (Write down your thoughts To-do list (write down tasks and procrastinate) Calculator (do math - scary) Music Player (play some music) Gallery (view images) Browser (browser through three webpages) File explorer (create .txt files and folders) Settings (configure stuff like Widgets and more) Terminal (run commands) ✨Other Features✨: Search menu (to search for apps) Control center (controls brightness, volume and connectivity) Cat widget (click to meow) Calendar (view today’s date) Minimalist Clock (read the time) Dark / Light mode (toggle in settings) Loading screen This is my first time creating a website. Doing WebOS 1 really helped me get a grasp of the basics. I was a total beginner at this and yet more than 10 Devlogs later here I am. As you can probably tell by the amount of hours on this project, it wasn’t all sunshine and rainbows. Maximizing and moving windows was the things I struggled most with. It took me way too long to fix the millions of bugs associated with window dragging, maximizing and positioning. The website turned out better than I could have ever imagined and I hope you enjoy using it. I am particularly proud of the dark mode (find in settings), I think it looks amazing. Enough yap, enjoy the website :3 (if the blur effect doesn’t work please skip this project, thank you!)", "repo": "https://github.com/CharlieTheCatMeow/WebOS", "demo": "https://charliethecatmeow.github.io/WebOS/"}, {"ship_num": 3, "ts": "2026-07-04T09:53:06Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "My very own web-based operating system! It features: Notes App (you can add pages) Stopwatch To-Do List Clock Took me a while to figure out. Javascript was the hardest for me since I’ve only ever coded in Python, but I managed. Hope this gets approved so I can continue working on it (with more stardust :D)", "repo": "https://github.com/CharlieTheCatMeow/WebOS", "demo": "https://charliethecatmeow.github.io/WebOS/"}]...
|
[{"post_id": 57257, "ts": "202 [{"post_id": 57257, "ts": "2026-08-29T11:20:43Z", "hours": 0.5786, "text": "MeowOS Devlog #15 Some small changes before shipping! Made the clicking and typing sound be turned on by default Changed some window width settings Changed terminal commands a bit Fixed the search menu icon size I should be able to ship this now."}, {"post_id": 54595, "ts": "2026-08-25T16:54:45Z", "hours": 1.1153, "text": "MeowOS Devlog #14 Added a pink theme This was upon request by someone from slack, they wanted a pink theme so here it is. Changes to the terminal I reworked some commands. I bundled all the app commands into one, so it’s no longer “todo”, but “app todo”. It’s a bit cleaner. Also did this with the themes, but I forgot if I did it this devlog or the last one. Setting for maximizing window There is now an option in the settings to hide the taskbar (the thing on the bottom) when the window is maximized. I really over complicated things while trying to make it work, found out it was just a one single line of code that was needed. This should be all I think"}, {"post_id": 53227, "ts": "2026-08-23T17:47:34Z", "hours": 3.9083, "text": "MeowOS Devlog #13 Themes! I decided do a complete overhaul of the themes. Instead of dark and light mode, there are no five different themes to choose from. I had to refactor almost everything since the code from before was pretty poorly made. Browser URL bar The browser URL bar works now! You can now enter website addresses and they should show up. (Do note that some websites block iframes and may not work). Some sound effects I added a typing and clicking sound effect. You need to enable it in settings. Small tweaks I finally changed the notes delete button. Instead of deleting every page, it now only deletes the current one. Also, the placeholders are actual placeholders now, so they hide themselves when selecting the text and reappear if the text is left empty. The title and date of the notes also get saved now. I found out why the music player playlist wasn’t getting resized along with the window, I was able to fix it with just one line of CSS code. Fixed the stopwatch reset button not changing the play button’s icon if the time was still running."}, {"post_id": 52885, "ts": "2026-08-23T08:22:56Z", "hours": 2.4619, "text": "MeowOS Devlog #12 Some small stuff Resizable windows! I made most windows resizable. I had to fix a lot of CSS for that, but I’m glad it works now. Also tweaked some minor stuff. (Notice how windows are smaller in the picture)"}, {"post_id": 27712, "ts": "2026-07-13T14:38:25Z", "hours": 3.7478, "text": "MeosOS Devlog #11 More bug fixes and also widgets!!! I did some more bug fixing with the dark and light mode as well as window scaling. I think all bugs should be gone now, though I’m not entirely sure I didn’t miss any. Widgets I added three widgets: cat you can click to meow calendar a minimalist round clock That’s all. I hope I can ship this now. (Though I am a bit paranoid of issues I didn’t notice)"}, {"post_id": 27330, "ts": "2026-07-12T20:18:07Z", "hours": 4.935, "text": "MeowOS Devlog #10 Bug fixes and control center Not much to say about this one. I spent a long time fixing a bunch of bugs and polishing the website. I also added a control center to the top right. I gotta find some creative ideas to add to this hmm…"}, {"post_id": 27128, "ts": "2026-07-12T12:30:37Z", "hours": 5.335, "text": "MeowOS Devlog #9 File explorer! This was by far the hardest window to implement. Took me quite a while to figure out the recursive functions to browse through the files. Features: Create folders Create text files Write things in text files Delete files and folders Everything is saved to localStorage This was very fun. Javascript got kind of difficult but it turned out great. I will probably create some widgets now. :D"}, {"post_id": 26605, "ts": "2026-07-11T15:09:33Z", "hours": 7.01, "text": "MeowOS Devlog #8 Another kinda long one…I got a bit carried away. Maximize windows I finally added a function to maximize certain windows. There were way too many bugs associated with that feature, that took way too long. Especially hiding the top bar while a window is maximized. Loading screen I also made the loading screen stay a bit longer on screen so people with high internet speeds will still be able to see it. Gallery Probably the easiest task of this devlog. Not much to say about it, it’s a gallery with pictures. Search menu This one worked surprisingly well. I somehow got the search function right in the first two attempts. Very fun to make. Light / Dark mode I changed my mind. This was the easiest task. I was avoiding this since I thought it would be super complicated, but it turns out it’s not. :D That’s all I did. I still have a few apps in mind, so I’ll start working on those soon."}, {"post_id": 25876, "ts": "2026-07-10T11:19:21Z", "hours": 2.6578, "text": "MeowOS Devlog #7 Music App I finally finished the music application. I still have to find some songs I am allowed to put in there. Loading Screen I also added a loading screen with a cat-shaped loading bar. Took me a while to figure out how an svg works. The text also has an animation to make it more interesting. Easter egg I added an easter egg. It’s not much and not that difficult to find, but I won’t reveal what it is. That’s all :D"}, {"post_id": 25349, "ts": "2026-07-09T16:10:03Z", "hours": 9.3508, "text": "MeowOS Devlog #6 It’s a long one… Since I finally got my ship approved, I can now post my 9 hour devlog D: I added a bunch of things and improved the design by a lot: New Design, looks much prettier Animations for interactive elements A command terminal, you can open windows with it A calculator, to calculate stuff ;-; a WIP music player (I need to find songs) A start menu before loading the OS. Took me quite a while to figure out. Javascript isn’t really a problem anymore. I really enjoyed updating the design in CSS using :hover and keyframes. I’m very happy of how it all turned out."}, {"post_id": 22068, "ts": "2026-07-04T09:50:36Z", "hours": 1.0447, "text": "MeowOS Devlog #5 I fixed some bugs. I didn’t do too much. It is now time to ship this project. I hope that it works!"}, {"post_id": 21429, "ts": "2026-07-03T11:40:25Z", "hours": 3.8028, "text": "MeowOS Devlog #4 Getting the hang of Javascript I made my own Stopwatch app without following the guide. Took me a while but I completed it and I am very happy with the result. I am now trying to do some more complex apps before shipping this project. I still have some work to do, as the To-Do List App is not finished and a terminal App is missing. That’s all .D"}, {"post_id": 18362, "ts": "2026-06-29T14:23:32Z", "hours": 3.1842, "text": "MeowOS Devlog #3 Still learning Javascript Javascript is still kind of confusing for me, I’m starting to figure it out though. Notes App I finished my first app with functionality. You can write stuff in it. Unlimited new note pages can also be created and there is a button to wipe everything. Looking forward to adding additional content :D"}, {"post_id": 13723, "ts": "2026-06-22T14:30:16Z", "hours": 2.6383, "text": "MeowOS Devlog #2 Learning Javascript Javascript took me a while to figure out. I found getting the Javascript file to work with the website a bit confusing, but the guide helped me through it. I have added: App icons (though not all of them assigned) two apps (still empty) draggable close / open them the selected app sits on top. I look forward to coding my first proper app with functions. That’s all :D"}, {"post_id": 12458, "ts": "2026-06-20T10:47:00Z", "hours": 1.6758, "text": "MeowOS (placeholder name) My first html project! I had some prior basic html knowledge, but that was a long time ago. I chose this mission because: I want to improve my website development skills This mission gives practically infinite possibilities for apps, so I have a lot of creative freedom With the first 100 minutes now logged, this is what I completed: a desktop background a top bar a clock a temporary non-draggable window I’m trying to not use pixels as measurement since I want the website to work on all resolutions. I’ll see if that will work out. All in all, I’m very happy with the design. I got back into html and didn’t feel like anything was that challenging yet. I have never done Javascript though, that will probably be a bit harder."}]...
|
Title: MeowOS! by @CharlieCatMeow | Stardance
Dev Title: MeowOS! by @CharlieCatMeow | Stardance
Devlogs:
MeowOS (placeholder name) My first html project! I had some prior basic html knowledge, but that was a long time ago. I chose this mission because: I want to improve my website development skills This mission gives practically infinite possibilities for apps, so I have a lot of creative freedom With the first 100 minutes now logged, this is what I completed: a desktop background a top bar a clock a temporary non-draggable window I’m trying to not use pixels as measurement since I want the website to work on all resolutions. I’ll see if that will work out. All in all, I’m very happy with the design. I got back into html and didn’t feel like anything was that challenging yet. I have never done Javascript though, that will probably be a bit harder.
MeowOS Devlog #2 Learning Javascript Javascript took me a while to figure out. I found getting the Javascript file to work with the website a bit confusing, but the guide helped me through it. I have added: App icons (though not all of them assigned) two apps (still empty) draggable close / open them the selected app sits on top. I look forward to coding my first proper app with functions. That’s all :D
MeowOS Devlog #3 Still learning Javascript Javascript is still kind of confusing for me, I’m starting to figure it out though. Notes App I finished my first app with functionality. You can write stuff in it. Unlimited new note pages can also be created and there is a button to wipe everything. Looking forward to adding additional content :D
MeowOS Devlog #4 Getting the hang of Javascript I made my own Stopwatch app without following the guide. Took me a while but I completed it and I am very happy with the result. I am now trying to do some more complex apps before shipping this project. I still have some work to do, as the To-Do List App is not finished and a terminal App is missing. That’s all .D
MeowOS Devlog #5 I fixed some bugs. I didn’t do too much. It is now time to ship this project. I hope that it works!
MeowOS Devlog #6 It’s a long one… Since I finally got my ship approved, I can now post my 9 hour devlog D: I added a bunch of things and improved the design by a lot: New Design, looks much prettier Animations for interactive elements A command terminal, you can open windows with it A calculator, to calculate stuff ;-; a WIP music player (I need to find songs) A start menu before loading the OS. Took me quite a while to figure out. Javascript isn’t really a problem anymore. I really enjoyed updating the design in CSS using :hover and keyframes. I’m very happy of how it all turned out.
MeowOS Devlog #7 Music App I finally finished the music application. I still have to find some songs I am allowed to put in there. Loading Screen I also added a loading screen with a cat-shaped loading bar. Took me a while to figure out how an svg works. The text also has an animation to make it more interesting. Easter egg I added an easter egg. It’s not much and not that difficult to find, but I won’t reveal what it is. That’s all :D
MeowOS Devlog #8 Another kinda long one…I got a bit carried away. Maximize windows I finally added a function to maximize certain windows. There were way too many bugs associated with that feature, that took way too long. Especially hiding the top bar while a window is maximized. Loading screen I also made the loading screen stay a bit longer on screen so people with high internet speeds will still be able to see it. Gallery Probably the easiest task of this devlog. Not much to say about it, it’s a gallery with pictures. Search menu This one worked surprisingly well. I somehow got the search function right in the first two attempts. Very fun to make. Light / Dark mode I changed my mind. This was the easiest task. I was avoiding this since I thought it would be super complicated, but it turns out it’s not. :D That’s all I did. I still have a few apps in mind, so I’ll start working on those soon.
MeowOS Devlog #9 File explorer! This was by far the hardest window to implement. Took me quite a while to figure out the recursive functions to browse through the files. Features: Create folders Create text files Write things in text files Delete files and folders Everything is saved to localStorage This was very fun. Javascript got kind of difficult but it turned out great. I will probably create some widgets now. :D
MeowOS Devlog #10 Bug fixes and control center Not much to say about this one. I spent a long time fixing a bunch of bugs and polishing the website. I also added a control center to the top right. I gotta find some creative ideas to add to this hmm…
MeosOS Devlog #11 More bug fixes and also widgets!!! I did some more bug fixing with the dark and light mode as well as window scaling. I think all bugs should be gone now, though I’m not entirely sure I didn’t miss any. Widgets I added three widgets: cat you can click to meow calendar a minimalist round clock That’s all. I hope I can ship this now. (Though I am a bit paranoid of issues I didn’t notice)
MeowOS Devlog #12 Some small stuff Resizable windows! I made most windows resizable. I had to fix a lot of CSS for that, but I’m glad it works now. Also tweaked some minor stuff. (Notice how windows are smaller in the picture)
MeowOS Devlog #13 Themes! I decided do a complete overhaul of the themes. Instead of dark and light mode, there are no five different themes to choose from. I had to refactor almost everything since the code from before was pretty poorly made. Browser URL bar The browser URL bar works now! You can now enter website addresses and they should show up. (Do note that some websites block iframes and may not work). Some sound effects I added a typing and clicking sound effect. You need to enable it in settings. Small tweaks I finally changed the notes delete button. Instead of deleting every page, it now only deletes the current one. Also, the placeholders are actual placeholders now, so they hide themselves when selecting the text and reappear if the text is left empty. The title and date of the notes also get saved now. I found out why the music player playlist wasn’t getting resized along with the window, I was able to fix it with just one line of CSS code. Fixed the stopwatch reset button not changing the play button’s icon if the time was still running.
MeowOS Devlog #14 Added a pink theme This was upon request by someone from slack, they wanted a pink theme so here it is. Changes to the terminal I reworked some commands. I bundled all the app commands into one, so it’s no longer “todo”, but “app todo”. It’s a bit cleaner. Also did this with the themes, but I forgot if I did it this devlog or the last one. Setting for maximizing window There is now an option in the settings to hide the taskbar (the thing on the bottom) when the window is maximized. I really over complicated things while trying to make it work, found out it was just a one single line of code that was needed. This should be all I think
MeowOS Devlog #15 Some small changes before shipping! Made the clicking and typing sound be turned on by default Changed some window width settings Changed terminal commands a bit Fixed the search menu icon size I should be able to ship this now.
Ships:
My very own web-based operating system! It features: Notes App (you can add pages) Stopwatch To-Do List Clock Took me a while to figure out. Javascript was the hardest for me since I’ve only ever coded in Python, but I managed. Hope this gets approved so I can continue working on it (with more stardust :D)
✨ MeowOS! ✨ MeowOS! is a web based operating system built to enhance productivity with a wide range of apps to be used. It is built on HTML, CSS and Javascript. ✨Apps✨: Introduction (a guide to the website) Stopwatch (Keep track of how much time has past) Notes (Write down your thoughts To-do list (write down tasks and procrastinate) Calculator (do math - scary) Music Player (play some music) Gallery (view images) Browser (browser through three webpages) File explorer (create .txt files and folders) Settings (configure stuff like Widgets and more) Terminal (run commands) ✨Other Features✨: Search menu (to search for apps) Control center (controls brightness, volume and connectivity) Cat widget (click to meow) Calendar (view today’s date) Minimalist Clock (read the time) Dark / Light mode (toggle in settings) Loading screen This is my first time creating a website. Doing WebOS 1 really helped me get a grasp of the basics. I was a total beginner at this and yet more than 10 Devlogs later here I am. As you can probably tell by the amount of hours on this project, it wasn’t all sunshine and rainbows. Maximizing and moving windows was the things I struggled most with. It took me way too long to fix the millions of bugs associated with window dragging, maximizing and positioning. The website turned out better than I could have ever imagined and I hope you enjoy using it. I am particularly proud of the dark mode (find in settings), I think it looks amazing. Enough yap, enjoy the website :3 (if the blur effect doesn’t work please skip this project, thank you!)
MeowOS! A web based operating system! Built with HTML, CSS, JavaScript and my sanity. I added a few new features! new themes the browser URL bar now works! yay Added window resizing for most windows. Updated the notes app so the delete button doesn’t remove all pages Added a typing and clicking sound effect (toggle in settings) You can now hide the icon bar when a window is maximized by going into settings. Changed the terminal commands to be more intuitive Fixed a bunch of bugs Also did a bunch of stuff you can’t see to clean up the code, it was pretty messy. (Please read the README as well) Enjoy!...
|
1792961491.4459298
|
1793047891.4459298
|
|
54169
|
Starr Journey by @KelvinY | Stardance
|
KelvinY
|
4
|
44.0
|
632
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-24T13:00:36Z", "hours": 4.0, "multiplier": 18.78, "payout": 100, "blessing": "neutral", "text": "This is the last ship! Added the Easter Egg and made some gameplay balance changes. Btw I finally got MY FIRST STAR IN GITHUB after 6 months of coding! 😭 Yalls good luck in stardancing, cya! ❤️", "repo": "https://github.com/kelvinyhf/starr-journey", "demo": "https://starrjourney.pages.dev"}, {"ship_num": 2, "ts": "2026-10-14T13:02:13Z", "hours": 18.0, "multiplier": 15.48, "payout": 343, "blessing": "neutral", "text": "[Planet and Rank System Completed] As meters increase you’ll enter different planets like the Earth, Venus, and Mars which have their own unique debuffs to make the game more challenging.. planet orders are random, and you may read the description below the planet name to get hints about the current debuff :0 The next ship is the last ship (since Stardance is ending plus I’m getting bored with this), and it’s about A VERY BIG EASTER EGG!! stay tuned! >:3", "repo": "https://github.com/kelvinyhf/starr-journey", "demo": "https://starrjourney.pages.dev"}, {"ship_num": 3, "ts": "2026-09-20T08:28:47Z", "hours": 16.0, "multiplier": 8.61, "payout": 136, "blessing": "neutral", "text": "[Shop Completed] I’m finally here to introduce the new feature: Shop! There’s a total of 7 items (which are explained in recent devlog, but actually recommend to discover by urself), and three of them will be available on each refresh (10mins, randomly picked), you can buy them with silver coins or gold coins. A few noteworthy points: Feel free to share shop items or potions (collectibles) ideas! All ideas will be appreciated and reviewed!! Added speed and health potions as collectibles Meters are multiplied, which means 800m now is like equal to 200m in the last version Hope u like :) (It actually shouldn’t take 22 hrs that long, bc I need to deal with mobile codespaces..)", "repo": "https://github.com/kelvinyhf/starr-journey", "demo": "https://starrjourney.pages.dev"}, {"ship_num": 4, "ts": "2026-08-31T12:46:24Z", "hours": 6.0, "multiplier": 9.01, "payout": 53, "blessing": "neutral", "text": "[Basic Gameplay Completed] Starr Journey is a 8-bit pixel style game about “Starr” dodging obstacles. You can control Starr by either dragging your mouse or swiping your finger. Try to collect as many coins as possible and go as far as you can :) I dare you can’t go beyond 200m..", "repo": "https://github.com/kelvinyhf/starr-journey", "demo": "https://starrjourney.pages.dev"}]...
|
[{"post_id": 82228, "ts": "202 [{"post_id": 82228, "ts": "2026-10-24T10:30:20Z", "hours": 0.6769, "text": "No way I used all my codespace hours (i can’t use local vscode bc i mainly develop in iPhone) It resets after the Stardance, so I can’t code anymore.. Anyway I exported the branch and managed to finish the last update (the Easter egg) THIS WAS STARR JOURNEY!!"}, {"post_id": 81481, "ts": "2026-10-21T13:14:35Z", "hours": 3.7656, "text": "( WOW I CANT BELIEVE I GOT THE SUPER STAR THANK YALL!! ) Added a very secret Easter egg as mentioned in the last ship! Yea, it’s very secret, so I can’t tell you.. discover it by yourself! 😈"}, {"post_id": 79520, "ts": "2026-10-14T12:52:52Z", "hours": 4.2778, "text": "Added planets (Neptune) that I didn’t add before the last devlog, and some balance changes like pickups (potions) spawn limit (max 1 per 10s), and planets description which give hints about the debuff of the current planet"}, {"post_id": 78329, "ts": "2026-10-10T13:44:05Z", "hours": 8.8819, "text": "Added the planet system and the rank system!!! As meters increases Starr enters different planet… each planet has its own unique debuff (no buffs :/), I added all the 8 major planets except Mercury and Jupiter cuz I don’t have debuff ideas for them :( And the rank system! Now you can see ur best distance in the menu, and.. your rank! (Obviously it’s just for entertainment purposes it’s fakeeee X) Development maybe slower due to academic reasons :( but anyway next ship coming soon!"}, {"post_id": 74330, "ts": "2026-09-27T05:47:17Z", "hours": 5.3258, "text": "It has been a while since the second ship, cuz I need time to study (plus my streak is gone :( Anyway, I reviewed all the feedbacks and made many improvements! now supports keyboard control! (from reason 1&2) cuz I don’t want conflict between mouse and key, so u can click Space to enter the game in keyboard mode , either AD or <> key works changed meteors (formerly rocks) texture! This is feedback from almost all reasons cuz small meteor and small silver coin looks almost the same 😅 power-ups (potions): added the blindness potion and confusion potion! more item will be added soon and I gonna make the game more interesting and chaotic :) The next big update is BIOMES !! Different biomes like the Earth, the Moon, the Mars, each has different buffs and debuffs! More in the next devlog! (the “Cred” button in the menu is actually “Credits”, bc those online resources helped me a lotttt so I wanna thank them ❤️ , ngl only like half of all the sprites are made by me)"}, {"post_id": 70944, "ts": "2026-09-20T02:45:28Z", "hours": 3.5514, "text": "SHOP COMPLETED! All items has vfx and sfx now, with balanced price, and 10 minutes of refresh time :)"}, {"post_id": 69117, "ts": "2026-09-16T12:42:30Z", "hours": 10.1, "text": "90% of Shop Completed! Added many things like the new currency silver coin, and all the shop items, including speedy (faster movement on start), shield (+25hp on start), lucky (adds more coins fewer obstacles), stasis (makes obstacles near Starr move slower) , dodge (chance to dodge obstacles on hit), magnet (I don’t think I need to explain this), and double (just, double coins). All items has a fixed range of price, each are different. The full system and next ship will be in this week as well as branch merging so I guess just wait for this cool feature :) (ngl It didn’t took me 10 hrs that long just bc I can’t access my pc so I am just dealing with codespace in my iPhone :/)"}, {"post_id": 62586, "ts": "2026-09-06T01:35:48Z", "hours": 2.2442, "text": "Thanks for yalls feedback! made many changes like add more effects when hit rock and pick up coin. Two new items, health and speed potion, and the shop will also be added soon!"}, {"post_id": 58826, "ts": "2026-08-31T12:30:42Z", "hours": 1.1892, "text": "Added game logo, loading screen, and spark effect"}, {"post_id": 58062, "ts": "2026-08-30T12:32:48Z", "hours": 1.2697, "text": "Added much more features, like sfx, bgm, new health bar and Starr, and cool death screen. Tmr will be my first ship :)"}, {"post_id": 57016, "ts": "2026-08-29T02:46:24Z", "hours": 1.1647, "text": "Added new coins, rocks, and bg stars, as well as progress bar at the bottom and isFinished flag"}, {"post_id": 56356, "ts": "2026-08-28T03:14:53Z", "hours": 1.1786, "text": "Added coins label + health system"}, {"post_id": 56315, "ts": "2026-08-28T01:31:22Z", "hours": 1.0969, "text": "Added Starr and obstacles. Player can now control Starr by dragging cursor/finger"}]...
|
Title: Starr Journey by @KelvinY | Stardance
Devl Title: Starr Journey by @KelvinY | Stardance
Devlogs:
Added Starr and obstacles. Player can now control Starr by dragging cursor/finger
Added coins label + health system
Added new coins, rocks, and bg stars, as well as progress bar at the bottom and isFinished flag
Added much more features, like sfx, bgm, new health bar and Starr, and cool death screen. Tmr will be my first ship :)
Added game logo, loading screen, and spark effect
Thanks for yalls feedback! made many changes like add more effects when hit rock and pick up coin. Two new items, health and speed potion, and the shop will also be added soon!
90% of Shop Completed! Added many things like the new currency silver coin, and all the shop items, including speedy (faster movement on start), shield (+25hp on start), lucky (adds more coins fewer obstacles), stasis (makes obstacles near Starr move slower) , dodge (chance to dodge obstacles on hit), magnet (I don’t think I need to explain this), and double (just, double coins). All items has a fixed range of price, each are different. The full system and next ship will be in this week as well as branch merging so I guess just wait for this cool feature :) (ngl It didn’t took me 10 hrs that long just bc I can’t access my pc so I am just dealing with codespace in my iPhone :/)
SHOP COMPLETED! All items has vfx and sfx now, with balanced price, and 10 minutes of refresh time :)
It has been a while since the second ship, cuz I need time to study (plus my streak is gone :( Anyway, I reviewed all the feedbacks and made many improvements! now supports keyboard control! (from reason 1&2) cuz I don’t want conflict between mouse and key, so u can click Space to enter the game in keyboard mode , either AD or <> key works changed meteors (formerly rocks) texture! This is feedback from almost all reasons cuz small meteor and small silver coin looks almost the same 😅 power-ups (potions): added the blindness potion and confusion potion! more item will be added soon and I gonna make the game more interesting and chaotic :) The next big update is BIOMES !! Different biomes like the Earth, the Moon, the Mars, each has different buffs and debuffs! More in the next devlog! (the “Cred” button in the menu is actually “Credits”, bc those online resources helped me a lotttt so I wanna thank them ❤️ , ngl only like half of all the sprites are made by me)
Added the planet system and the rank system!!! As meters increases Starr enters different planet… each planet has its own unique debuff (no buffs :/), I added all the 8 major planets except Mercury and Jupiter cuz I don’t have debuff ideas for them :( And the rank system! Now you can see ur best distance in the menu, and.. your rank! (Obviously it’s just for entertainment purposes it’s fakeeee X) Development maybe slower due to academic reasons :( but anyway next ship coming soon!
Added planets (Neptune) that I didn’t add before the last devlog, and some balance changes like pickups (potions) spawn limit (max 1 per 10s), and planets description which give hints about the debuff of the current planet
( WOW I CANT BELIEVE I GOT THE SUPER STAR THANK YALL!! ) Added a very secret Easter egg as mentioned in the last ship! Yea, it’s very secret, so I can’t tell you.. discover it by yourself! 😈
No way I used all my codespace hours (i can’t use local vscode bc i mainly develop in iPhone) It resets after the Stardance, so I can’t code anymore.. Anyway I exported the branch and managed to finish the last update (the Easter egg) THIS WAS STARR JOURNEY!!
Ships:
[Basic Gameplay Completed] Starr Journey is a 8-bit pixel style game about “Starr” dodging obstacles. You can control Starr by either dragging your mouse or swiping your finger. Try to collect as many coins as possible and go as far as you can :) I dare you can’t go beyond 200m..
[Shop Completed] I’m finally here to introduce the new feature: Shop! There’s a total of 7 items (which are explained in recent devlog, but actually recommend to discover by urself), and three of them will be available on each refresh (10mins, randomly picked), you can buy them with silver coins or gold coins. A few noteworthy points: Feel free to share shop items or potions (collectibles) ideas! All ideas will be appreciated and reviewed!! Added speed and health potions as collectibles Meters are multiplied, which means 800m now is like equal to 200m in the last version Hope u like :) (It actually shouldn’t take 22 hrs that long, bc I need to deal with mobile codespaces..)
[Planet and Rank System Completed] As meters increase you’ll enter different planets like the Earth, Venus, and Mars which have their own unique debuffs to make the game more challenging.. planet orders are random, and you may read the description below the planet name to get hints about the current debuff :0 The next ship is the last ship (since Stardance is ending plus I’m getting bored with this), and it’s about A VERY BIG EASTER EGG!! stay tuned! >:3
This is the last ship! Added the Easter Egg and made some gameplay balance changes. Btw I finally got MY FIRST STAR IN GITHUB after 6 months of coding! 😭 Yalls good luck in stardancing, cya! ❤️...
|
1793000893.5329442
|
1793087293.5329442
|
|
26409
|
Apex Aerospace Studio by @NITHIN | Stardance
|
NITHIN
|
1
|
50.0
|
631
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T14:40:56Z", "hours": 50.0, "multiplier": 19.22, "payout": 631, "blessing": "neutral", "text": "Apex Aerospace Studio is a premium, professional sounding-rocket engineering workstation. The application provides an interactive suite of five modules designed with a clean, grid-based layout: Overview Dashboard: Displays 2D structural blueprints annotated with dynamic Center of Gravity (CG) and Center of Pressure (CP) flags. Rocket Failure Explorer: Simulates flight kinematics using a 2D Euler integration engine that models thrust, gravity, aerodynamics, rotational torque, and recovery failures. Telemetry is plotted on synchronized Cartesian charts. Nose Cone Optimization Lab: Generates CAD profile geometries (conical, tangent ogive, Von Karman) and compares subsonic/supersonic drag coefficients on a five-axis radar pentagon. Mission Patch Studio: Creates custom vector SVG insignia badges using curved path typography and orbital trajectory templates. Documentation Hub: Hosts flight formulas and design standards. The software runs fully offline as a portable, flat bundle of index.html, style.css, and app.js with zero dependencies.", "repo": "https://github.com/Nithinfgs/Apex-Aerospace-Studio", "demo": "https://celebrated-duckanoo-9a3b66.netlify.app/"}]...
|
[{"post_id": 17622, "ts": "202 [{"post_id": 17622, "ts": "2026-06-28T14:31:40Z", "hours": 9.0, "text": "Finished working on the style.css file, which means the project is now complete! I’ll be uploading it soon"}, {"post_id": 17392, "ts": "2026-06-28T04:45:49Z", "hours": 1.0, "text": "Today I started styling the project by creating the style.css file. Time to make everything look clean and polished!"}, {"post_id": 17061, "ts": "2026-06-27T18:16:32Z", "hours": 14.0, "text": "Today’s progress was focused on the web frontend. I finished working on the index.html file and pushed the latest changes to the GitHub repository. This sets up the basic structure and keeps the project up to date for the next development tasks."}, {"post_id": 16678, "ts": "2026-06-27T03:33:06Z", "hours": 1.0, "text": "Started building the index.html file by setting up the basic HTML structure, metadata, and linking the stylesheet. Added a professional header with the project logo, navigation tabs, system status indicator, and a Save Config button. This establishes the core layout that CSS will style and JavaScript will make interactive."}, {"post_id": 16317, "ts": "2026-06-26T15:30:54Z", "hours": 22.0, "text": "Hit a big milestone today just crossed 2,000 lines of code on the project! The core systems are now coming together, including a physics-based rocket flight simulator with wind, stability, recovery, and failure modeling. I also built a scientific charting engine, live telemetry visualization, nose cone design and aerodynamic analysis tools, CAD-style blueprint generation, and a customizable mission patch generator. Most of the foundation is now in place, and the next phase will focus on polishing the UI, expanding features, and improving the overall experience."}]...
|
Title: Apex Aerospace Studio by @NITHIN | Stardanc Title: Apex Aerospace Studio by @NITHIN | Stardance
Devlogs:
Hit a big milestone today just crossed 2,000 lines of code on the project! The core systems are now coming together, including a physics-based rocket flight simulator with wind, stability, recovery, and failure modeling. I also built a scientific charting engine, live telemetry visualization, nose cone design and aerodynamic analysis tools, CAD-style blueprint generation, and a customizable mission patch generator. Most of the foundation is now in place, and the next phase will focus on polishing the UI, expanding features, and improving the overall experience.
Started building the index.html file by setting up the basic HTML structure, metadata, and linking the stylesheet. Added a professional header with the project logo, navigation tabs, system status indicator, and a Save Config button. This establishes the core layout that CSS will style and JavaScript will make interactive.
Today’s progress was focused on the web frontend. I finished working on the index.html file and pushed the latest changes to the GitHub repository. This sets up the basic structure and keeps the project up to date for the next development tasks.
Today I started styling the project by creating the style.css file. Time to make everything look clean and polished!
Finished working on the style.css file, which means the project is now complete! I’ll be uploading it soon
Ships:
Apex Aerospace Studio is a premium, professional sounding-rocket engineering workstation. The application provides an interactive suite of five modules designed with a clean, grid-based layout: Overview Dashboard: Displays 2D structural blueprints annotated with dynamic Center of Gravity (CG) and Center of Pressure (CP) flags. Rocket Failure Explorer: Simulates flight kinematics using a 2D Euler integration engine that models thrust, gravity, aerodynamics, rotational torque, and recovery failures. Telemetry is plotted on synchronized Cartesian charts. Nose Cone Optimization Lab: Generates CAD profile geometries (conical, tangent ogive, Von Karman) and compares subsonic/supersonic drag coefficients on a five-axis radar pentagon. Mission Patch Studio: Creates custom vector SVG insignia badges using curved path typography and orbital trajectory templates. Documentation Hub: Hosts flight formulas and design standards. The software runs fully offline as a portable, flat bundle of index.html, style.css, and app.js with zero dependencies....
|
1792882111.6572044
|
1793746111.6572044
|
|
47939
|
Arjun's Asset Hub by @ar-bh | Stardance
|
ar-bh
|
2
|
43.0
|
629
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T18:07:54Z", "hours": 14.0, "multiplier": 6.56, "payout": 93, "blessing": "neutral", "text": "Arjun’s Asset Hub!! v2.0 — Bigger Store Updates and Quality-of-Life Improvements I’m Arjun, and I’m 14 years old! 👋 Hi everybody! I love game development and animation, so I created a free asset website for myself and other creators like me. 3D Godot 4 Advanced Physics Simulator — A first-person playground where you can grab, throw, push, and destroy physics objects. 🧱 Basic FPS Controller — A beginner-friendly controller with walking, sprinting, jumping, mouse look, and a graybox map. 3D Platformer — A Mario-inspired controller with animated movement, jumping, and an orbital camera. Marble Run Controller — A physics-based marble that rolls around different courses. 3D Bear Controller — An animated bear that can walk and run around a colorful 3D map. 🐻 2D Godot 4 Basic 2D Platformer — A beginner-friendly pixel platformer with sprinting, coyote time, animations, and a Kenney playground. 🕹️ LEGO Blender 🧱 LEGO Arjun — A private LEGO version of me wearing my purple hoodie. LEGO Crying Castle Crasher — An unofficial LEGO-style Blue Knight with rendered scenes and a downloadable Blender file. LEGO Crying Guy — A custom green LEGO character originally created for one of my games. LEGO Person — Another custom character that is still being developed. Fonts Augie Pixel — The downloadable pixel font created by Augie that is used throughout this website. What’s new in v2.0? New 2D and 3D projects Search bars 🔎 Featured stars and orange glows 🌟 Automatic GitHub ZIP downloads Copyable Git clone commands Videos and screenshot galleries 🎥 Better phone and Chromebook scaling Lots of overlap and layout fixes I also recorded demonstration videos, created screenshots, wrote documentation, tested downloads, and published separate open-source repositories. My Basic FPS Controller was accepted onto the official Godot Asset Library ! 🎉 super cool :) I’ve been working all summer for my first gaming console—an XBOX! This is my second and final Asset Hub ship for Stardance, so please try the website and leave an honest review! If everyone gives this an honest review, I’ll have more than enough for the big box! Thank you all SO MUCH for the support!! ❤️", "repo": "https://github.com/ar-bh/arjuns-asset-hub", "demo": "https://ar-bh.github.io/arjuns-asset-hub/"}, {"ship_num": 2, "ts": "2026-08-28T17:15:48Z", "hours": 29.0, "multiplier": 17.64, "payout": 536, "blessing": "neutral", "text": "Arjun’s Asset Hub!! hi everybody, I’m Arjun, I’m 14 years old, and this is my project. I have a deep passion for game-dev and animation so I decided to make this website as a tool for myself, and other people like me too! godot 4 I always make my games in Godot so for my asset store, I added a category called Godot 4 (obviously :) ) So far, this has Simple 3D FPS Controller Mario-like 3D Platformer Marble Run controller and much more to come! i don’t really want to go that in-depth for the lego one because as of right now, it only has 1 asset that is only for me :( but I will be adding more soon!! guys, I’ve been working the entire summer for my first gaming console, an XBOX , and school is starting soon so this is my last ship! if everyone gives this a good review, then I’ll be set! please give me a good review so I can get an xbox, but don’t forget feedback as well! thank you guys SO MUCH for the support!!", "repo": "https://github.com/ar-bh/arjuns-asset-hub", "demo": "https://ar-bh.github.io/arjuns-asset-hub/"}]...
|
[{"post_id": 63734, "ts": "202 [{"post_id": 63734, "ts": "2026-09-07T18:00:28Z", "hours": 0.3167, "text": "if you are a ship reviewer, please give me a good review so I can get an xbox actual devlog below though mostly just updated the readme, before it was only for the previous ship. it had no where as much information and was only suitable for when there were only 2 3d projects and 2 categories. now there are 4 categories and my guess is almost 7 projects in total (averaging about 3 hours each) I really hope this will be my last devlog as in I will have enough points for the big box. One last time, thank you everybody for the support! ive had an amazing summer with this program, learned a lot, yea bye"}, {"post_id": 63716, "ts": "2026-09-07T17:30:49Z", "hours": 5.7436, "text": "SUPER COOL NEW ASSET!! 🔥 ADVANCED PHYSICS ENGINE! watch demo here its super cool it has minions and visit website here finally implemented minions! i think this is the final project of arjun’s asset hub FOR NOW so I wanted to make it huge and revolutionary (especially the video, u should watch it its super cool) so here is the list of what i did obviously made the whole asset of advanced physics simulator tbh its not really a simulator but the name fits kinda so who cares made it featured and also moved my less relevant projects like the bear 🐻 out of the featured section made a super cool demo video, linked above fixed some ui bugs here’s what you can do with this asset! throw around minions pick up and drop stuff (throw by flinging mouse and letting go) throw blocks into walls or the ground to destroy them and make them explode smash minions heads into things or fling them off the map crush minions with the big giant block move around and stuff using my first asset’s basic locomotion customize EVERYTHING toggle on/off debug mode guess that’s about it. gonna ship soon, THANKS EVERYBODY FOR THE SUPPORT!!!!!"}, {"post_id": 62278, "ts": "2026-09-05T15:57:22Z", "hours": 2.8056, "text": "brand new asset! basic 2d platformer! and more changes below these 2 hours were actually pretty fun here are the changes obviously added the new basic 2d platformer asset (made it featured too) split godot 4 category into 2D godot 4 and 3D godot 4 this will allow things to be neater and easier to find stuff for users next time added a better way to distinguish featured projects when not in the home tab by adding a star and an orange glow. you will be able to tell if a project is featured by actually looking through the assets in the store instead of visiting the featured projects page to do make a search thing probably make experience better for phones and weird screens like chromebooks, etc. that’s all, thanks!"}, {"post_id": 61187, "ts": "2026-09-04T00:12:02Z", "hours": 0.5772, "text": "officially added the bear 🐻 asset! this devlog mostly comprised of writing the detailed README.md like I do for all my assets it takes a while because I put a lot of effort it also includes the git commit to make it actually show on the website cool thanks!"}, {"post_id": 60523, "ts": "2026-09-02T22:21:27Z", "hours": 0.3153, "text": "think I’m done, ready to move on (sorry that previous video is corrupted)"}, {"post_id": 59201, "ts": "2026-08-31T21:10:21Z", "hours": 1.7831, "text": "bear sim is proving challenging (feedback pls 🙏) so the only problem rn is that animations are a bit hard to use. I’ve never done code for animations at this level so at least I’m learning I’m starting to think that I should have published this as its own project and maybe I shouldn’t make it under a MIT license bc of how hard I’m working. but it doesnt really matter bc either way im getting an xbox 👏 (Probably hopefully theoretically practically) – ok so yeah give me feedback tell me what you think thanks!"}, {"post_id": 59029, "ts": "2026-08-31T16:44:58Z", "hours": 1.8611, "text": "working on my next asset, a bear sim! 🐻 before I start, let me just express my gratitude. I’m only 134 stardust away from my xbox!! thank you guys so much for the good reviews and great feedback! i can nearly guarantee that I can get it now because of all of you! actual devlog now the next asset is a bear simulator its very unique imo i got a great model from sketchfab that I am so excited to implement properly so I think the end result will be really great! this is definitely going to be on the featured list if it turns out nice thanks for reading and supporting!"}, {"post_id": 56954, "ts": "2026-08-28T23:58:30Z", "hours": 0.8514, "text": "for those reviewing, pls give me a good review so I can get xbox actual devlog below though added new blender lego assets! this includes lego crying castle crasher and lego crying guy (they use the same face) both of these are projects from a while ago but it didn’t take time to add them and there’s also no harm so I just decided to add them bc y not added the website’s font! this font called augie pixel comes from Jame gam which is something you guys should do btw and is hosted by @augie . they made it themselves and I’m really gratefu that it’s free to use that’s all, pls give me good review if your rating btw 🙏"}, {"post_id": 56733, "ts": "2026-08-28T16:35:54Z", "hours": 0.2736, "text": "pre-devlog ship! wish me luck!! still a devlog though so I should probably say what I spent 15m doing love this emoji thing ok so I obviously added the readme! the readme contains: the title (obviously) the logo (obviously #2) what you can find inside this website (the Godot and Blender packs) each feature how to get an asset, basically tutorials a bit more about the actual website credits (me and I talked about how the rest are in each asset’s README) that’s it, wish me luck!"}, {"post_id": 56255, "ts": "2026-08-27T22:55:02Z", "hours": 0.3103, "text": "added the marble controller to my website! I Got lots of support from my fps one so I thought that I would try to mimic its theme and style and stuff using the graybox background. I will admit though that this is not one of my favorite projects so it is definitely not getting the featured tag (you can find the projects that are featured by scrolling down on the home page) I also found that lots of my hackatime projects are not being counted correctly so I had to add them. thanks for the support!"}, {"post_id": 56229, "ts": "2026-08-27T22:05:51Z", "hours": 1.2081, "text": "marble run! new asset for my asset library! this asset uses advanced physics using RigidBody3D i think it’s jupiter, not really sure what the marble texture is not really a fan of the quality of this project so I probably will not be submitting to asset library stay tuned though!"}, {"post_id": 56184, "ts": "2026-08-27T20:24:47Z", "hours": 1.5231, "text": "a few changes NEW CATEGORY! i made the home screen a little less boring by adding a preview of my demo videos as a playlist in the back, kinda faded out. i don’t think it looks that good so I wil probably remove it later and put something else the next category is lego blender! i started this with a lego version of me that I made a while back using mecabricks, will upload new custom self-made minifigs soon stay tuned!"}, {"post_id": 55727, "ts": "2026-08-27T18:18:34Z", "hours": 6.7719, "text": "created the 2nd project for my asest hub! simple 3d platformer you can try it now! the source code is here and the demo video is here Features orbital camera wasd movement with jump and gravity amazingly integrated gdquest model and animations have fun!"}, {"post_id": 53343, "ts": "2026-08-23T20:35:53Z", "hours": 3.2794, "text": "Working website! (prototype) so obviously, there’s the home page then theres the actual store which is like the main part of the project, and then source which is a link to the websites github and then donate which ill probably delete. so far I’ve only added godot 4 as a category and in godot 4 there is my * Basic fps controller which you can see in the last devlog websites turning out pretty good os far, I was thinking of adding animation related categories like lego models (bc I used to make lego animations so it could be fun and helpful) anyway that’s all, thanks for the support!"}, {"post_id": 53098, "ts": "2026-08-23T15:07:58Z", "hours": 7.0828, "text": "created the first project for my asset hub! It’s a basic FPS controller template for Godot 4 access it here and watch the demo video here . Enjoy!"}, {"post_id": 50387, "ts": "2026-08-19T15:35:54Z", "hours": 8.6053, "text": "created my project! and got lots of progress towards my website and my first asset!! got lots of work on the basic fps controller (look at future devlogs for more details because as of now, still in works!) started the website; I’m going for an orange theme like one of my old projects magic chainsaw because I liked how it looks i also made my logo by changing the colors of Godot logo to the colors of the blender logo so it represents the overlap between both (bc both will be present in the free store) don’t forget to smash that like button, thanks!"}]...
|
Title: Arjun's Asset Hub by @ar-bh | Stardance Title: Arjun's Asset Hub by @ar-bh | Stardance
Devlogs:
created my project! and got lots of progress towards my website and my first asset!! got lots of work on the basic fps controller (look at future devlogs for more details because as of now, still in works!) started the website; I’m going for an orange theme like one of my old projects magic chainsaw because I liked how it looks i also made my logo by changing the colors of Godot logo to the colors of the blender logo so it represents the overlap between both (bc both will be present in the free store) don’t forget to smash that like button, thanks!
created the first project for my asset hub! It’s a basic FPS controller template for Godot 4 access it here and watch the demo video here . Enjoy!
Working website! (prototype) so obviously, there’s the home page then theres the actual store which is like the main part of the project, and then source which is a link to the websites github and then donate which ill probably delete. so far I’ve only added godot 4 as a category and in godot 4 there is my * Basic fps controller which you can see in the last devlog websites turning out pretty good os far, I was thinking of adding animation related categories like lego models (bc I used to make lego animations so it could be fun and helpful) anyway that’s all, thanks for the support!
created the 2nd project for my asest hub! simple 3d platformer you can try it now! the source code is here and the demo video is here Features orbital camera wasd movement with jump and gravity amazingly integrated gdquest model and animations have fun!
a few changes NEW CATEGORY! i made the home screen a little less boring by adding a preview of my demo videos as a playlist in the back, kinda faded out. i don’t think it looks that good so I wil probably remove it later and put something else the next category is lego blender! i started this with a lego version of me that I made a while back using mecabricks, will upload new custom self-made minifigs soon stay tuned!
marble run! new asset for my asset library! this asset uses advanced physics using RigidBody3D i think it’s jupiter, not really sure what the marble texture is not really a fan of the quality of this project so I probably will not be submitting to asset library stay tuned though!
added the marble controller to my website! I Got lots of support from my fps one so I thought that I would try to mimic its theme and style and stuff using the graybox background. I will admit though that this is not one of my favorite projects so it is definitely not getting the featured tag (you can find the projects that are featured by scrolling down on the home page) I also found that lots of my hackatime projects are not being counted correctly so I had to add them. thanks for the support!
pre-devlog ship! wish me luck!! still a devlog though so I should probably say what I spent 15m doing love this emoji thing ok so I obviously added the readme! the readme contains: the title (obviously) the logo (obviously #2) what you can find inside this website (the Godot and Blender packs) each feature how to get an asset, basically tutorials a bit more about the actual website credits (me and I talked about how the rest are in each asset’s README) that’s it, wish me luck!
for those reviewing, pls give me a good review so I can get xbox actual devlog below though added new blender lego assets! this includes lego crying castle crasher and lego crying guy (they use the same face) both of these are projects from a while ago but it didn’t take time to add them and there’s also no harm so I just decided to add them bc y not added the website’s font! this font called augie pixel comes from Jame gam which is something you guys should do btw and is hosted by @augie . they made it themselves and I’m really gratefu that it’s free to use that’s all, pls give me good review if your rating btw 🙏
working on my next asset, a bear sim! 🐻 before I start, let me just express my gratitude. I’m only 134 stardust away from my xbox!! thank you guys so much for the good reviews and great feedback! i can nearly guarantee that I can get it now because of all of you! actual devlog now the next asset is a bear simulator its very unique imo i got a great model from sketchfab that I am so excited to implement properly so I think the end result will be really great! this is definitely going to be on the featured list if it turns out nice thanks for reading and supporting!
bear sim is proving challenging (feedback pls 🙏) so the only problem rn is that animations are a bit hard to use. I’ve never done code for animations at this level so at least I’m learning I’m starting to think that I should have published this as its own project and maybe I shouldn’t make it under a MIT license bc of how hard I’m working. but it doesnt really matter bc either way im getting an xbox 👏 (Probably hopefully theoretically practically) – ok so yeah give me feedback tell me what you think thanks!
think I’m done, ready to move on (sorry that previous video is corrupted)
officially added the bear 🐻 asset! this devlog mostly comprised of writing the detailed README.md like I do for all my assets it takes a while because I put a lot of effort it also includes the git commit to make it actually show on the website cool thanks!
brand new asset! basic 2d platformer! and more changes below these 2 hours were actually pretty fun here are the changes obviously added the new basic 2d platformer asset (made it featured too) split godot 4 category into 2D godot 4 and 3D godot 4 this will allow things to be neater and easier to find stuff for users next time added a better way to distinguish featured projects when not in the home tab by adding a star and an orange glow. you will be able to tell if a project is featured by actually looking through the assets in the store instead of visiting the featured projects page to do make a search thing probably make experience better for phones and weird screens like chromebooks, etc. that’s all, thanks!
SUPER COOL NEW ASSET!! 🔥 ADVANCED PHYSICS ENGINE! watch demo here its super cool it has minions and visit website here finally implemented minions! i think this is the final project of arjun’s asset hub FOR NOW so I wanted to make it huge and revolutionary (especially the video, u should watch it its super cool) so here is the list of what i did obviously made the whole asset of advanced physics simulator tbh its not really a simulator but the name fits kinda so who cares made it featured and also moved my less relevant projects like the bear 🐻 out of the featured section made a super cool demo video, linked above fixed some ui bugs here’s what you can do with this asset! throw around minions pick up and drop stuff (throw by flinging mouse and letting go) throw blocks into walls or the ground to destroy them and make them explode smash minions heads into things or fling them off the map crush minions with the big giant block move around and stuff using my first asset’s basic locomotion customize EVERYTHING toggle on/off debug mode guess that’s about it. gonna ship soon, THANKS EVERYBODY FOR THE SUPPORT!!!!!
if you are a ship reviewer, please give me a good review so I can get an xbox actual devlog below though mostly just updated the readme, before it was only for the previous ship. it had no where as much information and was only suitable for when there were only 2 3d projects and 2 categories. now there are 4 categories and my guess is almost 7 projects in total (averaging about 3 hours each) I really hope this will be my last devlog as in I will have enough points for the big box. One last time, thank you everybody for the support! ive had an amazing summer with this program, learned a lot, yea bye
Ships:
Arjun’s Asset Hub!! hi everybody, I’m Arjun, I’m 14 years old, and this is my project. I have a deep passion for game-dev and animation so I decided to make this website as a tool for myself, and other people like me too! godot 4 I always make my games in Godot so for my asset store, I added a category called Godot 4 (obviously :) ) So far, this has Simple 3D FPS Controller Mario-like 3D Platformer Marble Run controller and much more to come! i don’t really want to go that in-depth for the lego one because as of right now, it only has 1 asset that is only for me :( but I will be adding more soon!! guys, I’ve been working the entire summer for my first gaming console, an XBOX , and school is starting soon so this is my last ship! if everyone gives this a good review, then I’ll be set! please give me a good review so I can get an xbox, but don’t forget feedback as well! thank you guys SO MUCH for the support!!
Arjun’s Asset Hub!! v2.0 — Bigger Store Updates and Quality-of-Life Improvements I’m Arjun, and I’m 14 years old! 👋 Hi everybody! I love game development and animation, so I created a free asset website for myself and other creators like me. 3D Godot 4 Advanced Physics Simulator — A first-person playground where you can grab, throw, push, and destroy physics objects. 🧱 Basic FPS Controller — A beginner-friendly controller with walking, sprinting, jumping, mouse look, and a graybox map. 3D Platformer — A Mario-inspired controller with animated movement, jumping, and an orbital camera. Marble Run Controller — A physics-based marble that rolls around different courses. 3D Bear Controller — An animated bear that can walk and run around a colorful 3D map. 🐻 2D Godot 4 Basic 2D Platformer — A beginner-friendly pixel platformer with sprinting, coyote time, animations, and a Kenney playground. 🕹️ LEGO Blender 🧱 LEGO Arjun — A private LEGO version of me wearing my purple hoodie. LEGO Crying Castle Crasher — An unofficial LEGO-style Blue Knight with rendered scenes and a downloadable Blender file. LEGO Crying Guy — A custom green LEGO character originally created for one of my games. LEGO Person — Another custom character that is still being developed. Fonts Augie Pixel — The downloadable pixel font created by Augie that is used throughout this website. What’s new in v2.0? New 2D and 3D projects Search bars 🔎 Featured stars and orange glows 🌟 Automatic GitHub ZIP downloads Copyable Git clone commands Videos and screenshot galleries 🎥 Better phone and Chromebook scaling Lots of overlap and layout fixes I also recorded demonstration videos, created screenshots, wrote documentation, tested downloads, and published separate open-source repositories. My Basic FPS Controller was accepted onto the official Godot Asset Library ! 🎉 super cool :) I’ve been working all summer for my first gaming console—an XBOX! This is my second and final Asset Hub ship for Stardance, so please try the website and leave an honest review! If everyone gives this an honest review, I’ll have more than enough for the big box! Thank you all SO MUCH for the support!! ❤️...
|
1792976059.7963495
|
1793062459.7963495
|
|
33116
|
livefetch by @WilGulf | Stardance
|
WilGulf
|
2
|
55.0
|
627
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T12:37:52Z", "hours": 23.0, "multiplier": 17.51, "payout": 395, "blessing": "neutral", "text": "This is the second ship of livefetch. From the previous ship livefetch has gotten much more features working on linux that previously only worked on macOS. The two difference between livefetch on macOS and Linux is almost zero. But what I am more proud of for this ship is the spinning logo. It wasn’t easy and I had to learn the math behind calculating the new position of a point after rotating a X degrees of a angle. But in the end the spinning looks AWESOME, in my opinion. So for anyone trying this: there are multiple ways of installing on different distros or OS, and all instructions are in the readme. And also livefetch hasn’t been tested on a wide amount of different hardware, so if you find a issue please let me know, thank you!", "repo": "https://github.com/WilGulf/livefetch", "demo": "https://github.com/WilGulf/livefetch/releases/tag/v2.2.2"}, {"ship_num": 2, "ts": "2026-07-25T19:44:27Z", "hours": 32.0, "multiplier": 7.41, "payout": 232, "blessing": "neutral", "text": "I have made my own system monitoring tool like fastfetch except the system information shown will always be live and updated. Many of the functions used for getting that info was using apples APIs and that made it very challenging to code. I am now very proud that this can be installed like any other cli tool using homebrew and it feels like a real tool. For any user that wants to try this I want you to know that this tool has been written and tested for macos. Some things may work on linux too but dont expect the same functionality.", "repo": "https://github.com/WilGulf/livefetch", "demo": "https://github.com/WilGulf/livefetch/releases/tag/v2.2.2"}]...
|
[{"post_id": 46276, "ts": "202 [{"post_id": 46276, "ts": "2026-08-13T12:22:10Z", "hours": 0.4942, "text": "Devblog 12 Last devblog before ship, gotta get this half hour counted. This time has just been used for some fixes for the different repositories and als testing livefetch on multiple distros. – WilGulf"}, {"post_id": 46203, "ts": "2026-08-13T08:29:01Z", "hours": 5.6628, "text": "Devblog 11 First i completed all information on linux, but it isn’t much to show. Livefetch on Linux now works like on macOS. But as macOS got a homebrew tap I though Linux needed it’s own. I found a tool called “nfpm” that with one configuration can build packages for multiple distros, really recommend it! But maintaining multiple package repositories looked like a lot of work so I then programmed my own shell script that takes the latest version of livefetch and publish it to all repositories. Took some work but it is now easier for anyone to install livefetch. In the image you can see livefetch being installed with apt on debian. – WilGulf"}, {"post_id": 43348, "ts": "2026-08-08T15:35:26Z", "hours": 4.7919, "text": "Devblog 10 I have been working on some small improvments that togther can add up and make livefetch a bit easier to understand and use. The help message has been updated and improved. Then i have this new option that prints the available modules for your system. I have also been working on the README to be up to date and more useful. I have also been working on getting livefetch to the aur, but the website hasn’t been working for me. Trying to register a account on the aur just gives me a 503 error. I hope that gets fixed so next ship can be installed using yay. –WilGulf – WilGulf"}, {"post_id": 41302, "ts": "2026-08-05T13:19:38Z", "hours": 4.2653, "text": "Devblog 9 I didn’t have access to my linux machine, so I needed to work on something else. And this is a large update for livefetch. Livefetch now has a –spin-logo true option that spins the logo around it’s y-axis. It took a while to get the math right and place all the ascii characters at the right place and right Z-level. Sometimes the logo disappeard, sometimes the color was wrong, sometimes the logo didn’t even show. But now the spinning works, at least for the logos I have tested it with. –WilGulf"}, {"post_id": 40950, "ts": "2026-08-04T20:01:50Z", "hours": 3.0542, "text": "Devblog 8 Now you may notice the devblogs are much closer, why? Well getting system info on linux is so much easier when it is just reading a file. But now I have come to the final task, GPU and display info. The way of getting that info is different from every GPU manufacturer, and from what I seen for Nvidia you have to use their tool to do it, but that isnt garanteed to be install on a linux system with a Nvidia card. I guess if fastfetch could do it then so should I. –WilGulf"}, {"post_id": 40219, "ts": "2026-08-03T16:59:47Z", "hours": 2.1647, "text": "Devblog 7 First of, we got some memory bars on linux. Yes now livefetch can display your linux systems ram and swap, even disks! Now lets address the elephant in the room, the logo. The logo isn’t actually predetermined, now I have livefetch parsing the /etc/os-release to get the distro and use it’s logos. For the parsing I had to learn some new C string functions and try my way to get the os name out of the file, but i got there in the end! –WilGulf"}, {"post_id": 40024, "ts": "2026-08-03T11:28:05Z", "hours": 2.1403, "text": "Devblog 6 Now livefetch is getting support for linux. I plan on making every module on macos work on linux but currently we just need the printing to work. MacOS and linux are close but not enough for everything to work so most functions need a rewrite. –WilGulf"}, {"post_id": 34785, "ts": "2026-07-25T19:37:16Z", "hours": 0.5875, "text": "Devblog 5 Livefetch is being shipped. Now that version output shows the version of livefetch being the full release. I have updated it for homebrew and the README is complete. Now any mac user will be able to use this system monitor. –WilGulf"}, {"post_id": 34738, "ts": "2026-07-25T18:24:20Z", "hours": 4.3378, "text": "Devblog 4 I know I said the info was done, but here comes more. Using many of apples APIs we now can get the GPU model, battery and display stats. Livefetch also supports homebrew as the package manager you can install livefetch on your own system with, but also livefetch can track the amount of packages installed with homebrew. Hope to soon ship! –WilGulf"}, {"post_id": 28281, "ts": "2026-07-14T13:08:36Z", "hours": 11.1519, "text": "Info complete Now i have got so much system info on macos. Memory, swap, disk, local-ip, system locale and much more. But that i got working after much much time. Soon ready for first release for macos. –WilGulf"}, {"post_id": 26766, "ts": "2026-07-11T19:12:22Z", "hours": 6.9325, "text": "Real info Finally all info shown is the real data from the system. Now it is now you can see how the updating works. And no i do not use RHEL i just like the tuff logo. –WilGulf"}, {"post_id": 25947, "ts": "2026-07-10T13:51:21Z", "hours": 9.3881, "text": "livefetch When larping a linux distro you always need fastfetch/neofetch open. But the problem with those are that the info displayed gets outdated, after just a minute the ram usage could be completely wrong. This fastfetch like project shows the info live and that darker line looping through is what updates the info. Now both the info and logo shown is just a test and not real system information. This is just for testing. In the background there is a config read when starting the program that determines the logo and if that darker line should be shown. Later comes actually implementing a way to get that information on all the different operating systems. –WilGulf"}]...
|
Title: livefetch by @WilGulf | Stardance
Devlogs: Title: livefetch by @WilGulf | Stardance
Devlogs:
livefetch When larping a linux distro you always need fastfetch/neofetch open. But the problem with those are that the info displayed gets outdated, after just a minute the ram usage could be completely wrong. This fastfetch like project shows the info live and that darker line looping through is what updates the info. Now both the info and logo shown is just a test and not real system information. This is just for testing. In the background there is a config read when starting the program that determines the logo and if that darker line should be shown. Later comes actually implementing a way to get that information on all the different operating systems. –WilGulf
Real info Finally all info shown is the real data from the system. Now it is now you can see how the updating works. And no i do not use RHEL i just like the tuff logo. –WilGulf
Info complete Now i have got so much system info on macos. Memory, swap, disk, local-ip, system locale and much more. But that i got working after much much time. Soon ready for first release for macos. –WilGulf
Devblog 4 I know I said the info was done, but here comes more. Using many of apples APIs we now can get the GPU model, battery and display stats. Livefetch also supports homebrew as the package manager you can install livefetch on your own system with, but also livefetch can track the amount of packages installed with homebrew. Hope to soon ship! –WilGulf
Devblog 5 Livefetch is being shipped. Now that version output shows the version of livefetch being the full release. I have updated it for homebrew and the README is complete. Now any mac user will be able to use this system monitor. –WilGulf
Devblog 6 Now livefetch is getting support for linux. I plan on making every module on macos work on linux but currently we just need the printing to work. MacOS and linux are close but not enough for everything to work so most functions need a rewrite. –WilGulf
Devblog 7 First of, we got some memory bars on linux. Yes now livefetch can display your linux systems ram and swap, even disks! Now lets address the elephant in the room, the logo. The logo isn’t actually predetermined, now I have livefetch parsing the /etc/os-release to get the distro and use it’s logos. For the parsing I had to learn some new C string functions and try my way to get the os name out of the file, but i got there in the end! –WilGulf
Devblog 8 Now you may notice the devblogs are much closer, why? Well getting system info on linux is so much easier when it is just reading a file. But now I have come to the final task, GPU and display info. The way of getting that info is different from every GPU manufacturer, and from what I seen for Nvidia you have to use their tool to do it, but that isnt garanteed to be install on a linux system with a Nvidia card. I guess if fastfetch could do it then so should I. –WilGulf
Devblog 9 I didn’t have access to my linux machine, so I needed to work on something else. And this is a large update for livefetch. Livefetch now has a –spin-logo true option that spins the logo around it’s y-axis. It took a while to get the math right and place all the ascii characters at the right place and right Z-level. Sometimes the logo disappeard, sometimes the color was wrong, sometimes the logo didn’t even show. But now the spinning works, at least for the logos I have tested it with. –WilGulf
Devblog 10 I have been working on some small improvments that togther can add up and make livefetch a bit easier to understand and use. The help message has been updated and improved. Then i have this new option that prints the available modules for your system. I have also been working on the README to be up to date and more useful. I have also been working on getting livefetch to the aur, but the website hasn’t been working for me. Trying to register a account on the aur just gives me a 503 error. I hope that gets fixed so next ship can be installed using yay. –WilGulf – WilGulf
Devblog 11 First i completed all information on linux, but it isn’t much to show. Livefetch on Linux now works like on macOS. But as macOS got a homebrew tap I though Linux needed it’s own. I found a tool called “nfpm” that with one configuration can build packages for multiple distros, really recommend it! But maintaining multiple package repositories looked like a lot of work so I then programmed my own shell script that takes the latest version of livefetch and publish it to all repositories. Took some work but it is now easier for anyone to install livefetch. In the image you can see livefetch being installed with apt on debian. – WilGulf
Devblog 12 Last devblog before ship, gotta get this half hour counted. This time has just been used for some fixes for the different repositories and als testing livefetch on multiple distros. – WilGulf
Ships:
I have made my own system monitoring tool like fastfetch except the system information shown will always be live and updated. Many of the functions used for getting that info was using apples APIs and that made it very challenging to code. I am now very proud that this can be installed like any other cli tool using homebrew and it feels like a real tool. For any user that wants to try this I want you to know that this tool has been written and tested for macos. Some things may work on linux too but dont expect the same functionality.
This is the second ship of livefetch. From the previous ship livefetch has gotten much more features working on linux that previously only worked on macOS. The two difference between livefetch on macOS and Linux is almost zero. But what I am more proud of for this ship is the spinning logo. It wasn’t easy and I had to learn the math behind calculating the new position of a point after rotating a X degrees of a angle. But in the end the spinning looks AWESOME, in my opinion. So for anyone trying this: there are multiple ways of installing on different distros or OS, and all instructions are in the readme. And also livefetch hasn’t been tested on a wide amount of different hardware, so if you find a issue please let me know, thank you!...
|
1792986962.1134398
|
1793073362.1134398
|
|
6822
|
Buffet Patron Simulator by @ylu | Stardance
|
ylu
|
1
|
47.0
|
625
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-29T18:37:52Z", "hours": 47.0, "multiplier": 14.51, "payout": 625, "blessing": "neutral", "text": "I made a simulation game where you are at a buffet. You can put food on your plate and watch it realistically deform based on what’s underneath it. You can pour yourself a drink at the soda fountain and even mix drinks. This is technically my third Unity game, but it is the greatest in terms of originality and scope. I had little to no experience programming in C# for Unity before this. I’m proud of realizing some of my more technically challenging visions such as the food deformation and drink mixing. I’m also proud of learning how to model and paint foods and such in Blender. My project is fully playable on the web. The demo points to the itch.io page. A Windows executable is also available to download there.", "repo": "https://github.com/Why-Am/Buffet-Patron-Simulator", "demo": "https://yhlu.itch.io/buffet-patron-simulator"}]...
|
[{"post_id": 18467, "ts": "202 [{"post_id": 18467, "ts": "2026-06-29T17:06:12Z", "hours": 5.7625, "text": "New in Buffet Patron Simulator: Final Tweaks, a Video Trailer, and Ship Preparations In-Game Changes White UI text now has an outline for visibility New food item: chocolate cake slice ( watch me make it ) Changed the directional light from a realtime light to a mixed light (realtime + baked) so shadows would be higher quality on web Trailer I made a trailer for my game: https://youtu.be/KIWuaLkeX5Q ( watch me make it ) Updated README and Itch.io Page Finally, I updated my project’s README and Itch.io page for polish. Attached: frame from the trailer"}, {"post_id": 16030, "ts": "2026-06-26T01:06:25Z", "hours": 1.5383, "text": "Added some posters to my game"}, {"post_id": 15301, "ts": "2026-06-24T21:03:17Z", "hours": 3.9775, "text": "New in Buffet Patron Simulator: Realistic Sounds, Inspecting Drink Dispensers Adding sounds to the drink dispensers got me to rework the hold interactions. Now it uses the more sane method of checking key presses and releases (previously it just sent interact calls every frame a key was held). Anyways, with that alongside a new “liquid pouring” effect (which is just a moving cylinder), the dispensers are now more satisfying to use. Placing Food Placing food also gets a sound. So that not all foods sounded the same, I added a “weight” field to each food that determined the volume at which the sound would be played. Inspecting Your Food and Drink I added an inspect scene that’s basically just a copy-and-paste of the food placing scene but stripped down and with the glass present. It’s accessed by pressing i . Ship Soon? Next, I will focus on final optimizations and promotional materials (videos, images) to prepare to ship within a few days."}, {"post_id": 14012, "ts": "2026-06-23T00:03:49Z", "hours": 5.9614, "text": "New in Buffet Patron Simulator: Drinks You can mix drinks and the color of the glass’s contents changes accordingly. I also added the game’s first sounds - you should be able to hear them in the video - as well as 3 more foods: crab rangoon, General Tso’s chicken, and coconut shrimp. It was a challenge to get the glass to fill at a consistent rate, but I figured it out using a coroutine that restricts the rate of calls to add liquid (which occur every frame the E key is held). Next up is figuring out how to play a sound while it fills…"}, {"post_id": 11533, "ts": "2026-06-18T20:38:49Z", "hours": 2.7747, "text": "Added some scenery and lighting to my buffet game There are some tough tradeoffs to be made in terms of graphics, given that I want the game to look good but also be lean for the web. Skybox There aren’t actually any 3D buildings outside of the windows, it’s just a skybox I got from Polyhaven (a large repository of public domain 3D assets I found). I settled for a lower resolution version since it would have less impact on loading times. Lights The lights on the ceiling are baked area lights. The upside of that is a lower runtime cost. The downside is that it ignores moving objects like the player. Floor Then, thinking the room looked a little dull, I made a purple and yellow (green?) tile material for the floor. The texture is nice and small at only 128x128 px/156 bytes. I’ve been increasingly mindful of texture sizes as my game grows."}, {"post_id": 10238, "ts": "2026-06-16T21:22:18Z", "hours": 2.5369, "text": "Added eggs, baked beans, and green beans. I also made some other refinements, including making the displays easier to interact with by making their colliders bigger. Watch me model the foods: https://lapse.hackclub.com/timelapse/0VTNwczx4ETd"}, {"post_id": 9514, "ts": "2026-06-15T21:39:32Z", "hours": 6.2758, "text": "Since last devlog, I added burger ingredients and a settings menu. Here’s a time lapse of me making the models: https://lapse.hackclub.com/timelapse/OWkasEGkBTYV It’s also now playable enough that I decided to publish a web demo: https://yhlu.itch.io/buffet-patron-simulator"}, {"post_id": 7228, "ts": "2026-06-12T02:00:44Z", "hours": 6.4814, "text": "Since last devlog, there is now: a preliminary buffet scene with a first person movable character and interactive food displays new 3D models for the plate and the rice, made in Blender"}, {"post_id": 6013, "ts": "2026-06-10T02:35:20Z", "hours": 3.1494, "text": "Steak Added Also made some improvements to placing food. Modeling Issues It turns out that colorful textures on voxel models mess up when remeshing. The rice doesn’t have this problem because it’s grayscale. So I ended up trying sculpting and texture painting in Blender, and it was actually very intuitive. The steak in the video is made completely in Blender."}, {"post_id": 5307, "ts": "2026-06-09T01:18:55Z", "hours": 3.3122, "text": "A Pile of Rice New scene for placing food on a plate. Currently only rice available. It’s only now starting to dawn on me that this doesn’t really look like rice."}, {"post_id": 4497, "ts": "2026-06-07T20:35:00Z", "hours": 4.8922, "text": "I am working on making food pile up realistically using mesh deformation. The structural integrity is adjustable for different foods. Structural integrity is achieved in two ways: Only the bottom vertices are directly mapped onto the surface below; the rest are then moved relative to the bottom vertices. The amount a vertex moves is inversely related to its height. It could be tuned in terms of realism and optimization, but I’m currently happy with the result."}]...
|
Title: Buffet Patron Simulator by @ylu | Stardance Title: Buffet Patron Simulator by @ylu | Stardance
Devlogs:
I am working on making food pile up realistically using mesh deformation. The structural integrity is adjustable for different foods. Structural integrity is achieved in two ways: Only the bottom vertices are directly mapped onto the surface below; the rest are then moved relative to the bottom vertices. The amount a vertex moves is inversely related to its height. It could be tuned in terms of realism and optimization, but I’m currently happy with the result.
A Pile of Rice New scene for placing food on a plate. Currently only rice available. It’s only now starting to dawn on me that this doesn’t really look like rice.
Steak Added Also made some improvements to placing food. Modeling Issues It turns out that colorful textures on voxel models mess up when remeshing. The rice doesn’t have this problem because it’s grayscale. So I ended up trying sculpting and texture painting in Blender, and it was actually very intuitive. The steak in the video is made completely in Blender.
Since last devlog, there is now: a preliminary buffet scene with a first person movable character and interactive food displays new 3D models for the plate and the rice, made in Blender
Since last devlog, I added burger ingredients and a settings menu. Here’s a time lapse of me making the models: https://lapse.hackclub.com/timelapse/OWkasEGkBTYV It’s also now playable enough that I decided to publish a web demo: https://yhlu.itch.io/buffet-patron-simulator
Added eggs, baked beans, and green beans. I also made some other refinements, including making the displays easier to interact with by making their colliders bigger. Watch me model the foods: https://lapse.hackclub.com/timelapse/0VTNwczx4ETd
Added some scenery and lighting to my buffet game There are some tough tradeoffs to be made in terms of graphics, given that I want the game to look good but also be lean for the web. Skybox There aren’t actually any 3D buildings outside of the windows, it’s just a skybox I got from Polyhaven (a large repository of public domain 3D assets I found). I settled for a lower resolution version since it would have less impact on loading times. Lights The lights on the ceiling are baked area lights. The upside of that is a lower runtime cost. The downside is that it ignores moving objects like the player. Floor Then, thinking the room looked a little dull, I made a purple and yellow (green?) tile material for the floor. The texture is nice and small at only 128x128 px/156 bytes. I’ve been increasingly mindful of texture sizes as my game grows.
New in Buffet Patron Simulator: Drinks You can mix drinks and the color of the glass’s contents changes accordingly. I also added the game’s first sounds - you should be able to hear them in the video - as well as 3 more foods: crab rangoon, General Tso’s chicken, and coconut shrimp. It was a challenge to get the glass to fill at a consistent rate, but I figured it out using a coroutine that restricts the rate of calls to add liquid (which occur every frame the E key is held). Next up is figuring out how to play a sound while it fills…
New in Buffet Patron Simulator: Realistic Sounds, Inspecting Drink Dispensers Adding sounds to the drink dispensers got me to rework the hold interactions. Now it uses the more sane method of checking key presses and releases (previously it just sent interact calls every frame a key was held). Anyways, with that alongside a new “liquid pouring” effect (which is just a moving cylinder), the dispensers are now more satisfying to use. Placing Food Placing food also gets a sound. So that not all foods sounded the same, I added a “weight” field to each food that determined the volume at which the sound would be played. Inspecting Your Food and Drink I added an inspect scene that’s basically just a copy-and-paste of the food placing scene but stripped down and with the glass present. It’s accessed by pressing i . Ship Soon? Next, I will focus on final optimizations and promotional materials (videos, images) to prepare to ship within a few days.
Added some posters to my game
New in Buffet Patron Simulator: Final Tweaks, a Video Trailer, and Ship Preparations In-Game Changes White UI text now has an outline for visibility New food item: chocolate cake slice ( watch me make it ) Changed the directional light from a realtime light to a mixed light (realtime + baked) so shadows would be higher quality on web Trailer I made a trailer for my game: https://youtu.be/KIWuaLkeX5Q ( watch me make it ) Updated README and Itch.io Page Finally, I updated my project’s README and Itch.io page for polish. Attached: frame from the trailer
Ships:
I made a simulation game where you are at a buffet. You can put food on your plate and watch it realistically deform based on what’s underneath it. You can pour yourself a drink at the soda fountain and even mix drinks. This is technically my third Unity game, but it is the greatest in terms of originality and scope. I had little to no experience programming in C# for Unity before this. I’m proud of realizing some of my more technically challenging visions such as the food deformation and drink mixing. I’m also proud of learning how to model and paint foods and such in Blender. My project is fully playable on the web. The demo points to the itch.io page. A Windows executable is also available to download there....
|
1792975687.3821056
|
1793062087.3821056
|
|
32126
|
Astrex VPN by @ThatWorks | Stardance
|
ThatWorks
|
1
|
52.25
|
625
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T17:57:10Z", "hours": 52.0, "multiplier": 14.1, "payout": 625, "blessing": "neutral", "text": "🚀 Building a VPN I actually want to use! I’m creating an open-source, cross-platform VPN client powered by the most resilient protocols - VLESS + REALITY and Hysteria 2. Frustrated by ad-heavy apps and shady privacy policies, I decided to build my own full ecosystem from scratch—including custom servers, node architecture, and native apps for macOS and Android (Windows & Linux coming soon!). Super proud to turn this idea into reality and keep it completely clean and transparent. Give it a try and download the builds at https://astrex.club !", "repo": "https://github.com/theorynow/AstrexVPN", "demo": "https://astrex.club"}]...
|
[{"post_id": 49960, "ts": "202 [{"post_id": 49960, "ts": "2026-08-18T23:05:08Z", "hours": 0.2522, "text": "A short video that shows the app in action. Download it for Android and macOS at https://astrex.club . Don’t forget to use a promo code for free traffic - TRIAL 🔥"}, {"post_id": 46441, "ts": "2026-08-13T17:31:58Z", "hours": 1.2156, "text": "Fixed the x86_64 (Intel) build issues for macOS. Sing-box now compiles seamlessly for both ARM64 and Intel architectures."}, {"post_id": 46368, "ts": "2026-08-13T15:20:54Z", "hours": 2.5178, "text": "Updated the design and the icon, added a new server, made some minor adjustments to the server-switching logic."}, {"post_id": 45383, "ts": "2026-08-11T20:02:10Z", "hours": 2.2822, "text": "I’ve been so focused on the client lately that I haven’t posted a devlog about the custom backend I’ve been building in the background for about 10 hours (the time actually doesn’t match this devlog, but it’s already synced to the main counter - a bit of a weird system). The whole architecture runs on a central Hub that stores user data and traffic, with individual nodes connecting to it via WebSockets so users can easily fetch active nodes and route their connections. The most interesting challenge was figuring out how to update the Xray core config on the nodes without any restarts—I managed to hook into Xray’s gRPC API to inject users and track traffic on the fly, while Hysteria handles the same tasks at the rest level. I also spun up a quick landing page for app downloads at https://astrex.club , but since I completely vibecoded, I kept it off the project time tracker to keep things fair. If you want to poke around under the hood, you can check out the API docs at https://hub.astrex.skyfly.hackclub.app/docs and the public Grafana dashboard here: https://grafana.hub.astrex.skyfly.hackclub.app/public-dashboards/f396f592ce994d128f9b2a321030ad58"}, {"post_id": 45146, "ts": "2026-08-11T13:28:32Z", "hours": 3.9036, "text": "Finally automated releases. One Gradle task now handles the whole process: updates versions in Android and iOS from libs.versions.toml, generates signed split APKs per architecture, and kicks off the macOS DMG build. (Plus, I finally fixed the issue where release builds were somehow still using the debug key…) Also added a small UI polish."}, {"post_id": 42860, "ts": "2026-08-07T20:18:39Z", "hours": 3.3008, "text": "Added promo codes and deeplinks. The plan is to put a “Try Trial” button on the website that deep-links straight into the app and auto-claims free traffic. To stop bots from abusing this, hooked up Abuse Shield with silent guest auth across our Axum backend and KMP client. Android uses ANDROID_ID, while iOS and macOS generate a persistent 256-bit key in Keychain to authenticate devices without login screens. It’s still a fairly basic check for now, but better than nothing. The rest was UI cleanup."}, {"post_id": 42171, "ts": "2026-08-06T19:44:17Z", "hours": 8.0311, "text": "Localization sat in the backlog forever, but I finally knocked it out using moko-resources. Dropped a language picker into the account screen too. Also added live TCP pings to the server list (previously there were mocks). The rest was mostly cleanup. Refreshed the account screen ui, properly organized folders by feature, and mapped backend errors to actual translated text instead of dumping raw unlocalized strings on the user. Next on the list is deeplinks. The plan is to let people claim their traffic via a link rather than just giving it away on signup - mainly to filter out bots. Once that’s sorted, I can finally start handing the client out for testing."}, {"post_id": 39181, "ts": "2026-08-01T23:37:52Z", "hours": 1.4764, "text": "Sparkle updates are finally working on macOS. Xcode was being a pain and ignoring version numbers from Info.plist, but got it sorted. Also fixed that annoying bug where the connection timer reset to zero whenever you navigated away from the home screen. Now we just calculate elapsed time dynamically - Android saves it in prefs, and macOS just asks the system how long sing-box has been running."}, {"post_id": 36995, "ts": "2026-07-29T13:26:34Z", "hours": 1.6144, "text": "Fixed a crash that only showed up when switching protocols really fast on Android. Every switch was doing a full restart of the VPN under the hood - kill the old connection, start a new one. The problem is the old connection’s background threads didn’t have time to clean up before the new ones started, and they’d end up colliding. Rare, but when it hit, the whole app went down. Turns out the library we use (sing-box) actually has a built-in way to swap configs without restarting anything - just feed it the new config and it handles the rest. Switched to that, crash is gone."}, {"post_id": 36580, "ts": "2026-07-28T19:48:21Z", "hours": 11.6572, "text": "Two commits in since the last post. MacOS is finally working - sing-box integration needed a proper rewrite, took longer than it should’ve. Also hooked up the backend to actual UI - server list, traffic, account, connect/disconnect - all talking to the rust (Axum) backend now. Plus added an in-app update widget to the UI. Android is fully working end to end at this point. Currently integrating Sparkle for auto-updates on macOS. More soon."}, {"post_id": 32977, "ts": "2026-07-22T14:22:53Z", "hours": 15.8939, "text": "So, first devlog - let’s go. I’ve been working on Astrex VPN for a while now and figured it’s time to start talking about it. Honestly, a big chunk of my time has gone into design, way more than I expected - I just can’t ship something that doesn’t look and feel right to me. The client is cross-platform, built with Kotlin Multiplatform and sing-box doing the heavy lifting under the hood. The backend is in Rust, which has been a great choice so far. Architecturally, the whole thing runs on a hub-and-node setup: the hub sits in the middle managing connections, and the nodes are individual servers that reach out to the hub and talk to it over WebSocket. Still a lot to do, but it’s coming together. More updates soon."}]...
|
Title: Astrex VPN by @ThatWorks | Stardance
Devlo Title: Astrex VPN by @ThatWorks | Stardance
Devlogs:
So, first devlog - let’s go. I’ve been working on Astrex VPN for a while now and figured it’s time to start talking about it. Honestly, a big chunk of my time has gone into design, way more than I expected - I just can’t ship something that doesn’t look and feel right to me. The client is cross-platform, built with Kotlin Multiplatform and sing-box doing the heavy lifting under the hood. The backend is in Rust, which has been a great choice so far. Architecturally, the whole thing runs on a hub-and-node setup: the hub sits in the middle managing connections, and the nodes are individual servers that reach out to the hub and talk to it over WebSocket. Still a lot to do, but it’s coming together. More updates soon.
Two commits in since the last post. MacOS is finally working - sing-box integration needed a proper rewrite, took longer than it should’ve. Also hooked up the backend to actual UI - server list, traffic, account, connect/disconnect - all talking to the rust (Axum) backend now. Plus added an in-app update widget to the UI. Android is fully working end to end at this point. Currently integrating Sparkle for auto-updates on macOS. More soon.
Fixed a crash that only showed up when switching protocols really fast on Android. Every switch was doing a full restart of the VPN under the hood - kill the old connection, start a new one. The problem is the old connection’s background threads didn’t have time to clean up before the new ones started, and they’d end up colliding. Rare, but when it hit, the whole app went down. Turns out the library we use (sing-box) actually has a built-in way to swap configs without restarting anything - just feed it the new config and it handles the rest. Switched to that, crash is gone.
Sparkle updates are finally working on macOS. Xcode was being a pain and ignoring version numbers from Info.plist, but got it sorted. Also fixed that annoying bug where the connection timer reset to zero whenever you navigated away from the home screen. Now we just calculate elapsed time dynamically - Android saves it in prefs, and macOS just asks the system how long sing-box has been running.
Localization sat in the backlog forever, but I finally knocked it out using moko-resources. Dropped a language picker into the account screen too. Also added live TCP pings to the server list (previously there were mocks). The rest was mostly cleanup. Refreshed the account screen ui, properly organized folders by feature, and mapped backend errors to actual translated text instead of dumping raw unlocalized strings on the user. Next on the list is deeplinks. The plan is to let people claim their traffic via a link rather than just giving it away on signup - mainly to filter out bots. Once that’s sorted, I can finally start handing the client out for testing.
Added promo codes and deeplinks. The plan is to put a “Try Trial” button on the website that deep-links straight into the app and auto-claims free traffic. To stop bots from abusing this, hooked up Abuse Shield with silent guest auth across our Axum backend and KMP client. Android uses ANDROID_ID, while iOS and macOS generate a persistent 256-bit key in Keychain to authenticate devices without login screens. It’s still a fairly basic check for now, but better than nothing. The rest was UI cleanup.
Finally automated releases. One Gradle task now handles the whole process: updates versions in Android and iOS from libs.versions.toml, generates signed split APKs per architecture, and kicks off the macOS DMG build. (Plus, I finally fixed the issue where release builds were somehow still using the debug key…) Also added a small UI polish.
I’ve been so focused on the client lately that I haven’t posted a devlog about the custom backend I’ve been building in the background for about 10 hours (the time actually doesn’t match this devlog, but it’s already synced to the main counter - a bit of a weird system). The whole architecture runs on a central Hub that stores user data and traffic, with individual nodes connecting to it via WebSockets so users can easily fetch active nodes and route their connections. The most interesting challenge was figuring out how to update the Xray core config on the nodes without any restarts—I managed to hook into Xray’s gRPC API to inject users and track traffic on the fly, while Hysteria handles the same tasks at the rest level. I also spun up a quick landing page for app downloads at https://astrex.club , but since I completely vibecoded, I kept it off the project time tracker to keep things fair. If you want to poke around under the hood, you can check out the API docs at https://hub.astrex.skyfly.hackclub.app/docs and the public Grafana dashboard here: https://grafana.hub.astrex.skyfly.hackclub.app/public-dashboards/f396f592ce994d128f9b2a321030ad58
Updated the design and the icon, added a new server, made some minor adjustments to the server-switching logic.
Fixed the x86_64 (Intel) build issues for macOS. Sing-box now compiles seamlessly for both ARM64 and Intel architectures.
A short video that shows the app in action. Download it for Android and macOS at https://astrex.club . Don’t forget to use a promo code for free traffic - TRIAL 🔥
Ships:
🚀 Building a VPN I actually want to use! I’m creating an open-source, cross-platform VPN client powered by the most resilient protocols - VLESS + REALITY and Hysteria 2. Frustrated by ad-heavy apps and shady privacy policies, I decided to build my own full ecosystem from scratch—including custom servers, node architecture, and native apps for macOS and Android (Windows & Linux coming soon!). Super proud to turn this idea into reality and keep it completely clean and transparent. Give it a try and download the builds at https://astrex.club !...
|
1792986988.612485
|
1793073388.612485
|
|
16473
|
Chill Record Player by @miles_s_aguilar | Stardanc Chill Record Player by @miles_s_aguilar | Stardance...
|
|
2
|
83.25
|
623
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-08T18:29:14Z", "hours": 30.0, "multiplier": 19.74, "payout": 466, "blessing": "neutral", "text": "I made a website for playing vinyls! I think an important aspect of enjoying music is being able to experience it physically, through interacting personally with the forms it comes in. Now obviously, this record player is online, so I did my best to bring that physical experience into a virtual website. Hopefully everything is self-explanatory on the site, and I incorperated a lot of feedback from the first round!! In the future, I plan to make this a standalone app, giving people the ability to upload their own music. Also, I’ll try to fix performance issues as I understand this website can be a bit resource-itensive.", "repo": "https://github.com/stackofdoggos/Chill-Music-Player", "demo": "https://milesaguilar.com/music/"}, {"ship_num": 2, "ts": "2026-06-21T07:05:21Z", "hours": 10.0, "multiplier": 16.59, "payout": 157, "blessing": "neutral", "text": "Hey everyone, I made a 3D vinyl player online to play classical music. Please try it!!! It’s fully hosted on my personal website at https://milesaguilar.com/music One of the most challenging aspects of this project was making everything feel as tactile as possible. To do this, I needed to balance realism with how annoying things would be to use. To this end, I spent a lot of time thinking about which controls were most intuitive. In the future, I plan to let people upload their own vinyls and have more furniture in the room. This is mostly just a proof of concept to see if people find this interesting", "repo": "https://github.com/stackofdoggos/Chill-Music-Player", "demo": "https://milesaguilar.com/music/"}]...
|
[{"post_id": 39588, "ts": "202 [{"post_id": 39588, "ts": "2026-08-02T17:44:39Z", "hours": 8.6531, "text": "Devlog #12: Chill Record Player I think the video I attatched was too large so I’m now rewriting this devlog ;-; Anyways, I’ve spent the last week implementing the Yandhi intro as I mentioned last devlog/product idea. I spent a ton of time modelling/keyframing it in Blender, then integrating it with the website to infinitely loop, then dissasemble the vinyl when a user enters the website. What took the longest was definitely the smooth yet neat transition where the inside of the record turns into the room, so please check it out!! PS caustics take foreverrrr to render…"}, {"post_id": 35320, "ts": "2026-07-26T17:17:22Z", "hours": 0.3014, "text": "CONCEPT: Loading Screen Hey all! This isn’t gonna be a normal devlog, but rather a quick update on something I’ll be hoping to add to the app. I’ve been tossing around a couple loading screen ideas but I think I have a really cool one. I want to mimic the Yandhi opening where an exploded view of a CD comes together and begins to spin. I think I can recreate that with my record player (or maybe just one vinyl, although that would be boring-ish?) Since this animation is a little long, I’ll probably only have it play when the user hasn’t logged on in awhile or something."}, {"post_id": 35076, "ts": "2026-07-26T08:21:15Z", "hours": 8.665, "text": "Devlog #11: Chill Record Player Spent all day adding a new table, and then using TypeScript to change the texture on it. I’m a bit worried about how I’m dividing the texturing between Blender and ts, as I have no rhyme or reason right now between which textures I delegate to which platform. Usually, the procedurally-generated textures are loaded in ts though. I also smoothed the grain on the bookshelf. The rug looks bad so I’ll work on that next, and then prepare the website for a MacOS app and implement more of the features I talked about in Devlog #9!!"}, {"post_id": 33809, "ts": "2026-07-24T01:31:18Z", "hours": 7.1611, "text": "Devlog #10: Chill Record Player Made a much more simplified loading screen and recorded some sound effects. Truthfully, I haven’t had that much time to work on the website. AND, I wasn’t able to export my original idea for a loading screen without a watermark. I’m gonna try and make something better than this…"}, {"post_id": 27539, "ts": "2026-07-13T06:03:22Z", "hours": 1.7986, "text": "Devlog #9: Chill Record Player A little hard to tell, but I updated the model of the bookshelf to be more visually interesting (extended the rails and added a metal base) and I also re-UV-unwrapped the bookshelf so the wood texture looks less stretched. I think I’m going to try and code something that blurs the texture a little though as the black parts are a little too dark for my taste. I was also thinking of adding this really cool animation I saw (see below) on Twitter to my loading screen, so keep an eye out for that!"}, {"post_id": 26712, "ts": "2026-07-11T17:41:40Z", "hours": 10.0772, "text": "Devlog #8: Chill Record Player I implemented more major performance enhancements, specifically aimed at increasing performance on retinal displays. Since retinal displays have so many pixels, computers bundle individual pixels together into logical pixels. The ratio at which this happens is called DPR. A higher DPR means sharper images but lower performance. I capped the DPR at 2x on “High”. Other changes were: Capped FPS at 60 -> 45 Added performance benchmarking to determine optimal settings for device Brought back temporal blur post-fx scan with extra leeway gained by reducing FPS Made “reflections on” default behavior Pushed more work to the loading screen Further performance changes planned before standalone app release Seeing if there’s a way to smush the 8x post-fx render stack into fewer passes Decimating more geometry Further ideas planned before app release: MAJOR: Letting user add more music MAJOR: Letting user add own props MAJOR: Tutorial/more tooltips MAJOR: Fixing flip animations upon un-focusing MAJOR: Adding zoom view to baskets MAJOR: Fixing audio bug between tracks (hard to pin down and test fixes, I’ll work on that tomorrow probably) MINOR: Generating normal maps for textures and replacing procedurally-generated floor MINOR: Modelling a better-looking table with legs that aren’t just metal poles lol MINOR: Fixing weird blur bug on the vinyl cover MINOR: Adding above-vinyl view that shows users where the start and end of every track is in different colors, allowing greater control over what songs can be played and when (see image below)"}, {"post_id": 26221, "ts": "2026-07-10T21:41:53Z", "hours": 6.5947, "text": "HOTFIX: Performance Enhancement So I was messing around with the website today and realized it was maxing out my GPU, which I thought was ridiculous. It turns out I had been vastly underestimating the performance impacts of some of the effects I had on the website, as well as the meshes I was using. I decimated a model I had on top of the bookshelf but it was simply too many tris, so I removed it and implemented other code that made the default graphical settings less taxing."}, {"post_id": 24858, "ts": "2026-07-08T18:26:22Z", "hours": 0.8017, "text": "Devlog #7: Chill Record Player Last one before ship #2! Got everything in order, including uploading things to my site and adding some more props. Also fixed some pathing issues. I also kinda got rid of the blur… After adding HDRIs, it looked kinda like Garry’s mod lol"}, {"post_id": 24323, "ts": "2026-07-07T20:36:35Z", "hours": 12.4606, "text": "Devlog #6: Chill Music Player Added a bonsai tree and started modelling other objects I want in the room. Pulled an all-nighter for this. While I was doing this, I realized that the file format I was using to render the room (glb) doesnt support specific node setups and textures. This essentially limited the realism of the textures I was trying to create. To alleviate this, I’ll have to rely heavily on realistic lighting and things like glossiness. So, I decided that the lighting should be handled by an HDR and reflections be rendered in real time (I wonder how bad the performance hit will be on this). However, I also want to keep the day-night slider. This poses an issue, as HDRs are static images. This means I’ll need to write code to interpolate (probably just a linear ramp) between a couple HDRs throughout the day. Now, I don’t know if this will give me the same very warm lighting I have now. I also intend to add reflections to the glass cover of the record player after I implement HDRs, but we’ll see… Other changes: Removed emitted dots Performance changes Worked on modeling a new table behind the scenes (I modeled my dining room table a year ago but p sure I deleted it unforch)"}, {"post_id": 23214, "ts": "2026-07-06T01:09:10Z", "hours": 14.3861, "text": "Devlog #5: Chill Record Player After a monumental amount of work, I’ve ported the geometry of the room (which I had originally written in typescript) into Blender. Hopefully, this gives me more control over adding more complex geometry into the scene like plants on the ground and trinkets on the desk before I export it as a GLB file. I really can’t emphasize enough how long this took; this literally doubled the amount of time I’ve spent on this project. Anyways, some of you may have noticed that the scene in Blender looks pretty plain, though, and that’s intentional! I’m gonna handle the lighting and some of the texturing in typescript. Some of the other features I’ve added/fixes I’ve done are a nicer settings panel, warm lighting, and reducing the crackle from the record player, which I heard was a little annoying. I’ve also added post-processing to the camera, including chromatic abberation, some bloom, and a grain filter which becomes more noticeable during sunset.. My next goal will be to add as much detail to the scene as I can in Blender to really make the scene come alive. That definitely means replacing the cactus-ish plant on top of the bookshelf lol."}, {"post_id": 22020, "ts": "2026-07-04T08:14:47Z", "hours": 2.7978, "text": "Devlog #4: Chill Record Player Since my ship, I’ve been working on more features such as a day-night slider (which I hope I can sync to the user’s time at some point), a remodeled bookshelf (this took awhile), and a better lighting system. I also added bins below the bookshelf for bulk storage of records after I friend recommended I do that. Some features people have been asking for and my thoughts: Hosting your own music: until I set up a dedicated DB for this, this is not going to be possible. Once I make this a standalone app I’ll definitely implement that. Also note that I can’t add non-classical music here because 99.99% of non-classical music that is popular right now is not in the public domain. Tutorial: Yes! I’ll work on accessability Favoriting records: Yes, with the new bookshelf I can implement that For now, I’m going to try and make the room feel warmer/more cozy by using volumetric shaders and introducing subsurface scattering on my models if I can do that without hurting performance. Follow to stay updated!!!!"}, {"post_id": 12970, "ts": "2026-06-21T07:01:31Z", "hours": 0.865, "text": "Devlog 3: Before first ship! added a custom shader which allows the user to switch between what time of day it is. will get rid of the slider in a future ship but its the best i could do for now…"}, {"post_id": 11517, "ts": "2026-06-18T20:15:15Z", "hours": 3.5244, "text": "Devlog 2: A super chill music website Over the past few days, I’ve been slowly chipping away at some QOL features. Users can now see which keystrokes can be used at any given moment and users can now inspect vinyls. Other features that were improved were the ability to move the arm of the record player with higher precision, and a top-down view which enhances that experience. Unfortunately, I had to change the records to be public domain in preparation for my first ship. MBDTF will not be avaliable, but maybe I’ll let users locally host their own vinyls! Ideas ideas ideas… Maybe this could also become a standalone app. Planned features (either before or after first ship) Custom shaders -> Moody lighting or time of day slider with lamp u can turn on and off Ability to locally host music or add your own Way more records Ability to change record order More views for inspecting your records Improve the top-down angle to show when tracks begin and end on a record Ability to customize painting"}, {"post_id": 7310, "ts": "2026-06-12T05:42:23Z", "hours": 5.2231, "text": "A super chill music website Recently, I’ve been kind of inspired by this Brian Eno quote: “Whatever you now find weird, ugly, uncomfortable and nasty about a new medium will surely become its signature. CD distortion, the jitteriness of digital video, the crap sound of 8-bit — all of these will be cherished and emulated as soon as they can be avoided. It’s the sound of failure: so much modern art is the sound of things going out of control, of a medium pushing to its limits and breaking apart. The distorted guitar sound is the sound of something too loud for the medium supposed to carry it. The blues singer with the cracked voice is the sound of an emotional cry too powerful for the throat that releases it. The excitement of grainy film, of bleached-out black and white, is the excitement of witnessing events too momentous for the medium assigned to record them.” For this reason, I’ve decided to build a chill music website for listening to vinyl records. Imo, the feel of interacting with music is just as important as listening to the music itself, and in an age of ultra-high-fidelity lossless downloads on Spotify, I think there’s something special about vinyl (and this is coming from someone who listens to a ton of Spotify). It’s taken a while to get this 3D view set up, and there are still a lot of bugs and sound effects I want to fix or implement to bring everything to life, but the challenge has been making the experience feel as tactile as possible. I look forward to seeing where this’ll go :)"}]...
|
Title: Chill Record Player by @miles_s_aguilar | S Title: Chill Record Player by @miles_s_aguilar | Stardance
Devlogs:
A super chill music website Recently, I’ve been kind of inspired by this Brian Eno quote: “Whatever you now find weird, ugly, uncomfortable and nasty about a new medium will surely become its signature. CD distortion, the jitteriness of digital video, the crap sound of 8-bit — all of these will be cherished and emulated as soon as they can be avoided. It’s the sound of failure: so much modern art is the sound of things going out of control, of a medium pushing to its limits and breaking apart. The distorted guitar sound is the sound of something too loud for the medium supposed to carry it. The blues singer with the cracked voice is the sound of an emotional cry too powerful for the throat that releases it. The excitement of grainy film, of bleached-out black and white, is the excitement of witnessing events too momentous for the medium assigned to record them.” For this reason, I’ve decided to build a chill music website for listening to vinyl records. Imo, the feel of interacting with music is just as important as listening to the music itself, and in an age of ultra-high-fidelity lossless downloads on Spotify, I think there’s something special about vinyl (and this is coming from someone who listens to a ton of Spotify). It’s taken a while to get this 3D view set up, and there are still a lot of bugs and sound effects I want to fix or implement to bring everything to life, but the challenge has been making the experience feel as tactile as possible. I look forward to seeing where this’ll go :)
Devlog 2: A super chill music website Over the past few days, I’ve been slowly chipping away at some QOL features. Users can now see which keystrokes can be used at any given moment and users can now inspect vinyls. Other features that were improved were the ability to move the arm of the record player with higher precision, and a top-down view which enhances that experience. Unfortunately, I had to change the records to be public domain in preparation for my first ship. MBDTF will not be avaliable, but maybe I’ll let users locally host their own vinyls! Ideas ideas ideas… Maybe this could also become a standalone app. Planned features (either before or after first ship) Custom shaders -> Moody lighting or time of day slider with lamp u can turn on and off Ability to locally host music or add your own Way more records Ability to change record order More views for inspecting your records Improve the top-down angle to show when tracks begin and end on a record Ability to customize painting
Devlog 3: Before first ship! added a custom shader which allows the user to switch between what time of day it is. will get rid of the slider in a future ship but its the best i could do for now…
Devlog #4: Chill Record Player Since my ship, I’ve been working on more features such as a day-night slider (which I hope I can sync to the user’s time at some point), a remodeled bookshelf (this took awhile), and a better lighting system. I also added bins below the bookshelf for bulk storage of records after I friend recommended I do that. Some features people have been asking for and my thoughts: Hosting your own music: until I set up a dedicated DB for this, this is not going to be possible. Once I make this a standalone app I’ll definitely implement that. Also note that I can’t add non-classical music here because 99.99% of non-classical music that is popular right now is not in the public domain. Tutorial: Yes! I’ll work on accessability Favoriting records: Yes, with the new bookshelf I can implement that For now, I’m going to try and make the room feel warmer/more cozy by using volumetric shaders and introducing subsurface scattering on my models if I can do that without hurting performance. Follow to stay updated!!!!
Devlog #5: Chill Record Player After a monumental amount of work, I’ve ported the geometry of the room (which I had originally written in typescript) into Blender. Hopefully, this gives me more control over adding more complex geometry into the scene like plants on the ground and trinkets on the desk before I export it as a GLB file. I really can’t emphasize enough how long this took; this literally doubled the amount of time I’ve spent on this project. Anyways, some of you may have noticed that the scene in Blender looks pretty plain, though, and that’s intentional! I’m gonna handle the lighting and some of the texturing in typescript. Some of the other features I’ve added/fixes I’ve done are a nicer settings panel, warm lighting, and reducing the crackle from the record player, which I heard was a little annoying. I’ve also added post-processing to the camera, including chromatic abberation, some bloom, and a grain filter which becomes more noticeable during sunset.. My next goal will be to add as much detail to the scene as I can in Blender to really make the scene come alive. That definitely means replacing the cactus-ish plant on top of the bookshelf lol.
Devlog #6: Chill Music Player Added a bonsai tree and started modelling other objects I want in the room. Pulled an all-nighter for this. While I was doing this, I realized that the file format I was using to render the room (glb) doesnt support specific node setups and textures. This essentially limited the realism of the textures I was trying to create. To alleviate this, I’ll have to rely heavily on realistic lighting and things like glossiness. So, I decided that the lighting should be handled by an HDR and reflections be rendered in real time (I wonder how bad the performance hit will be on this). However, I also want to keep the day-night slider. This poses an issue, as HDRs are static images. This means I’ll need to write code to interpolate (probably just a linear ramp) between a couple HDRs throughout the day. Now, I don’t know if this will give me the same very warm lighting I have now. I also intend to add reflections to the glass cover of the record player after I implement HDRs, but we’ll see… Other changes: Removed emitted dots Performance changes Worked on modeling a new table behind the scenes (I modeled my dining room table a year ago but p sure I deleted it unforch)
Devlog #7: Chill Record Player Last one before ship #2! Got everything in order, including uploading things to my site and adding some more props. Also fixed some pathing issues. I also kinda got rid of the blur… After adding HDRIs, it looked kinda like Garry’s mod lol
HOTFIX: Performance Enhancement So I was messing around with the website today and realized it was maxing out my GPU, which I thought was ridiculous. It turns out I had been vastly underestimating the performance impacts of some of the effects I had on the website, as well as the meshes I was using. I decimated a model I had on top of the bookshelf but it was simply too many tris, so I removed it and implemented other code that made the default graphical settings less taxing.
Devlog #8: Chill Record Player I implemented more major performance enhancements, specifically aimed at increasing performance on retinal displays. Since retinal displays have so many pixels, computers bundle individual pixels together into logical pixels. The ratio at which this happens is called DPR. A higher DPR means sharper images but lower performance. I capped the DPR at 2x on “High”. Other changes were: Capped FPS at 60 -> 45 Added performance benchmarking to determine optimal settings for device Brought back temporal blur post-fx scan with extra leeway gained by reducing FPS Made “reflections on” default behavior Pushed more work to the loading screen Further performance changes planned before standalone app release Seeing if there’s a way to smush the 8x post-fx render stack into fewer passes Decimating more geometry Further ideas planned before app release: MAJOR: Letting user add more music MAJOR: Letting user add own props MAJOR: Tutorial/more tooltips MAJOR: Fixing flip animations upon un-focusing MAJOR: Adding zoom view to baskets MAJOR: Fixing audio bug between tracks (hard to pin down and test fixes, I’ll work on that tomorrow probably) MINOR: Generating normal maps for textures and replacing procedurally-generated floor MINOR: Modelling a better-looking table with legs that aren’t just metal poles lol MINOR: Fixing weird blur bug on the vinyl cover MINOR: Adding above-vinyl view that shows users where the start and end of every track is in different colors, allowing greater control over what songs can be played and when (see image below)
Devlog #9: Chill Record Player A little hard to tell, but I updated the model of the bookshelf to be more visually interesting (extended the rails and added a metal base) and I also re-UV-unwrapped the bookshelf so the wood texture looks less stretched. I think I’m going to try and code something that blurs the texture a little though as the black parts are a little too dark for my taste. I was also thinking of adding this really cool animation I saw (see below) on Twitter to my loading screen, so keep an eye out for that!
Devlog #10: Chill Record Player Made a much more simplified loading screen and recorded some sound effects. Truthfully, I haven’t had that much time to work on the website. AND, I wasn’t able to export my original idea for a loading screen without a watermark. I’m gonna try and make something better than this…
Devlog #11: Chill Record Player Spent all day adding a new table, and then using TypeScript to change the texture on it. I’m a bit worried about how I’m dividing the texturing between Blender and ts, as I have no rhyme or reason right now between which textures I delegate to which platform. Usually, the procedurally-generated textures are loaded in ts though. I also smoothed the grain on the bookshelf. The rug looks bad so I’ll work on that next, and then prepare the website for a MacOS app and implement more of the features I talked about in Devlog #9!!
CONCEPT: Loading Screen Hey all! This isn’t gonna be a normal devlog, but rather a quick update on something I’ll be hoping to add to the app. I’ve been tossing around a couple loading screen ideas but I think I have a really cool one. I want to mimic the Yandhi opening where an exploded view of a CD comes together and begins to spin. I think I can recreate that with my record player (or maybe just one vinyl, although that would be boring-ish?) Since this animation is a little long, I’ll probably only have it play when the user hasn’t logged on in awhile or something.
Devlog #12: Chill Record Player I think the video I attatched was too large so I’m now rewriting this devlog ;-; Anyways, I’ve spent the last week implementing the Yandhi intro as I mentioned last devlog/product idea. I spent a ton of time modelling/keyframing it in Blender, then integrating it with the website to infinitely loop, then dissasemble the vinyl when a user enters the website. What took the longest was definitely the smooth yet neat transition where the inside of the record turns into the room, so please check it out!! PS caustics take foreverrrr to render…
Ships:
Hey everyone, I made a 3D vinyl player online to play classical music. Please try it!!! It’s fully hosted on my personal website at https://milesaguilar.com/music One of the most challenging aspects of this project was making everything feel as tactile as possible. To do this, I needed to balance realism with how annoying things would be to use. To this end, I spent a lot of time thinking about which controls were most intuitive. In the future, I plan to let people upload their own vinyls and have more furniture in the room. This is mostly just a proof of concept to see if people find this interesting
I made a website for playing vinyls! I think an important aspect of enjoying music is being able to experience it physically, through interacting personally with the forms it comes in. Now obviously, this record player is online, so I did my best to bring that physical experience into a virtual website. Hopefully everything is self-explanatory on the site, and I incorperated a lot of feedback from the first round!! In the future, I plan to make this a standalone app, giving people the ability to upload their own music. Also, I’ll try to fix performance issues as I understand this website can be a bit resource-itensive....
|
1792968565.1266577
|
1793054965.1266577
|
|
32292
|
Cozy cafè demo by @dragoncat404 | Stardance
|
dragoncat404
|
2
|
69.0
|
623
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T20:10:23Z", "hours": 34.0, "multiplier": 5.4, "payout": 183, "blessing": "neutral", "text": "Hi, this is the second ship for my game cozy cafe. This version adds a lot of features, and bug fixes, altough it’s more boring compared to the last one because of some drastic changes I made that will benefit the game in the next version. The most challenging thing in this version was making the shift system that makes the player able to play the game for an undefined amount of time. The most time consuming thing to do was the new drink since the way I made drinks work sucks, it’s very unnecessary complicated. The thing I’m very proud of is the end of shift summary sequence and the drawing, I can’t even describe with words how much I’m proud of it (especially the drawing) Before you play the project and rate it you should know that I’m aware that the game-loop is boring, in the next version I’m gonna change the game loop so that your view is from behing the counter and change a lot of things (kinda like in great pizza good pizza). If you would like to leave feedback of any kind like what you would like to see in the next version, suggestion on new drinks or upgrades feel free to tell them I’ll try to implement all of them as best as I can. In the next version I’m gonna try to also do a tutorial but I can’t promise anything. I don’t have any screenshots that can represent the project in action, so here you go the GIF from github and a picture of cozy, the games mascot", "repo": "https://github.com/Dragon-cat98/Cozy-cafe-demo", "demo": "https://dragoncat420.itch.io/cozy-cafe-demo"}, {"ship_num": 2, "ts": "2026-08-04T18:54:08Z", "hours": 35.0, "multiplier": 12.47, "payout": 440, "blessing": "neutral", "text": "I made a cozy game where you manage a coffe shop in the forest. The most challenging part of making the game was the coffe making mechanic and everything related to it, because there was a lot of problems and there weren’t many tutorials that were useful, so I had to think of ideas and re-think those ideas when they didn’t work. The thing I’m the most proud of is the game art since I’m not the best at drawing, and I think it turned out really well, but the main menu Background is my favourite that I made. This game is a demo and has a really short gameplay(10 min), for the next version I have a lot of things I want to add they’re all written in my notebook, and since the core mechanics are already made adding new features is gonna be easier. The project can be both played in browser on itch.io and be downloaded on itch.io(the instructions on how to install are both on itch and the github readme). Since the controls are mouse and click it can be kinda played on mobile, just that the resolution isn’t made for mobile, but it’s playable", "repo": "https://github.com/Dragon-cat98/Cozy-cafe-demo", "demo": "https://dragoncat420.itch.io/cozy-cafe-demo"}]...
|
[{"post_id": 63765, "ts": "202 [{"post_id": 63765, "ts": "2026-09-07T18:42:17Z", "hours": 3.6419, "text": "Hey everyone, this is the last devlog before shipping the project for the second time. Since last time I’ve done some touch ups like Making some art for the game like the lock so that people understand that it’s locked behind the completion of day 2 Changing the “¥” symbol with a custom made icon Adding the description to the Items in the shop ecc. fixed a bug where the fade in and out effect for starting a new shift would be way too long fixed all the minor bugs that we’re making the playing the uncomfortable had to disable the custom cursor because it would look giant in the actual build of the game And that should be it, I may have forgot something but please forgive me, I finished my notebook where I would write down all the stuff I did Thanks everyone for the support, I can’t wait to rebuild the new gameloop"}, {"post_id": 62376, "ts": "2026-09-05T18:21:25Z", "hours": 9.6569, "text": "Hey Everyone! you might already hev guessed it, The 10 hour limit is very close so I’m making a devlog. things done since last one finished making the shift system in it’s entirety(even if it’s still a bit buggy) the shift system also resets the customers position I’m adding a shop for after the shift where you can buy the drinks and upgrades upgrades and drink upgrades have been moved to the shop (I know it’s a drastic decision but I’ll explain why at the end) I made the art for the end of the shift summary, I’m super proud of it it looks way too good I locked the Orange juice behind the completition of day 2 made the start new shift system I’ve also fixed some leftover bugs from the time system of the shift system done the fade in fade out effect, that I need to tweeak because in some areas it takes too much time explanations I’ve moved the upgrades to the new shop area because after I ship the new version I’ll rework completely the gameplay, if anyone has ever played good pizza, great pizza is going to be familiar with the gameplay, I’ll change the look of it so that you see behing the counter, this is going to make the game way easier to manage and more fun, since this way the customer are going to be a lot easier to implement, and the drink making process is going to be more fun. Hope you’ll understand my decision, I’ve spoken to my friend that also does game dev and he said it’s a good idea. Now the gameplay is more boring? sure but in the next ship it’s going to be (hopefully) a completely different game P.S. the videos aren’t everything I added."}, {"post_id": 58834, "ts": "2026-08-31T12:42:53Z", "hours": 9.4953, "text": "Hey everybody, Sorry if I again went on radio silence but I was partecipating in the brackey game jam 2026.2 with jame gam. Anyways as always I’m being forced to post because of the 10 hour limit so some things are WIP what I’ve done I’ve read the feedback from the ship and a lot of people wanted a tutorial at the start, for now I can’t do that since the game is still in rough shape , but I added a tooltip so that people hopefully understand better how to play Now I’ve got some bad news, in this version I won’t be able to add the custom music changer I talked about in the last devlog, simply because it’s very hard and I couldn’t find any useful tutorials, hopefully in the next version I’ll be able to add it, I’ve like spent 3 hours searching ways to do it but I can’t figure it out I’m adding a shift system where you complete the day and it gives you all the statistics of the day, and maybe I’ll re-work the upgrade feature so that you can upgrade only after the shift ends and maybe add something like rush hour at certain hours, but to do that I’ll need to rework hoe the customers work thanks for the feedback I want to say thank you to all the people that gave feedback to the game I’ll try implementing your feedback, and also thanks for all the comoliments for the game I appreciate it very much Now I’m going back to work see you in the next devlog"}, {"post_id": 45382, "ts": "2026-08-11T19:59:49Z", "hours": 2.2286, "text": "After the last devlog I’ve finished the new drink feature and done some other things, so here’s what Changed: I’ve finished the New drink feature and implemented it with the game I’ve finished the menu where you have to purchase the drinks before having the option to make them, when I’ll add new drinks I’ll put having purchased the previous drink as a requirement to unlock the next one I’ve added a custom cursor I’ve solved the bug where when you dragged an object the object would’nt follow the cursor exactly and would just fly forward, turns out the canvas that was being used was changing into the wrong one since it was manually put in, I’ve changed it to automatically assign the canvas now at the start the kitchen is empty and by purchasing the coffe drink that makes appear the utensils to make coffe Now the next thing to implement is more SFX and other kinds of tracks , I’ll be adding something cool to change the music that’s playing and give the option to import songs to play, this will be the next feature along with some UI improvements like some animations for the menus . I won’t tell yet what the thing to change the music is, because first I want to see if it’s doable Anyways I wont’t be able to work on the game for a few days, because I’ll be away from home and won’t have internet access, but I’ll be doing some redesigns of the game art on my sketchbook during the time being and also researching if the feature can be done."}, {"post_id": 45114, "ts": "2026-08-11T12:13:00Z", "hours": 8.9111, "text": "I’m being forced to post because of the 10h limit this is still work in progress For now since the last post I’ve done: The new drink with all the filling and serving functions Added the new drink as a possible order for the customer added a menu where you purchase the new drinks added a dropdown to select the drink you want to make As I expected adding the new features with the core game logic already done is much easier, I stilll run into bugs but I fix them way more easily, after finishing implementing the drink feature I think I’ll improve the UI, but after that I have to decide on what to do since I do have an idea but I don’t know how long it will take to add and if it’s even worth it, anyway I’ll go back to finishing the new feature"}, {"post_id": 40854, "ts": "2026-08-04T17:20:31Z", "hours": 4.6403, "text": "Hey everyone this is the last devlog of the demo for cozy cafe because the demo version is finished. The last things that I’ve done before finishing it were: -solving some leftover minor bugs -Fixed the random customer skin change because the one customer would have the same skin as the other customer -I’ve made the main menu for the game -I’ve added music to the game -I’ve adde an SFX for when the customers pay For the next version of the game I’ve got a lot of ideas wrote in my notebook, and since the core logic of the game has already been made, these additions should be easy to add, since most of them are visual changes and adding features to already existing mechanics"}, {"post_id": 36471, "ts": "2026-07-28T16:36:15Z", "hours": 9.8586, "text": "Hi everyone, sorry for the radio silence but I was perticipating in the GMTK2026. I’m being forced to post because of the 10h limit, I’ve done a lot of things since the last devlog. I’ve: -Done the core game mechanic of preparing the coffes -Done a LOT of game art, I think I finished all the art for now -I fixed the leftover bugs, now the current version is bug free (I think), they were a lot and many were time consuming -I implemented a random skin change for the customer so that the customer doesn’t feel repetitive I know I’ve said I’ve done a lot of things, but the great majority of the things done were bug fixes and it would take a lot to list them all"}, {"post_id": 30247, "ts": "2026-07-17T17:48:45Z", "hours": 9.6956, "text": "In the last few days I focused on Adding one of the core features of the game and also solving problems about UI and code not collaborating: -I added the new feature that I’ll be expanding in the next few days, for now you prepare the coffes by clicking the button then take the coffes and drag them with the mouse to the white square that sends them to the shelf and increases the counter, by using the third upgrade you can increase the amount of coffes you can make and have on the shelf at the same time, in the next days I’ll be focusing on making art for the game -I drew and added the new coffe shop art -I added a drag&drop system for the kitchen panel -Added the third upgrade with it’s related info, and added real time upgrade prices in the info panel -While making the kitchen panel feature I ran in a logic problem that afer a lot of hours spent trying many ways to fix it, I had to ask claude to help me fix it, the AI actually came up with a genius solution to the problem since my logic for the bool variable was a total mess that I don’t even know how it got so messy -I fixed a bug where if both customers where near the shop you could only serve the one on the right, it was a simple fix, the two canvas where only overlapping eachother -I had to give up the idea of the coffes directly moving on the shelf after preparing them because of transform issues, and use a coffe counter that’s displayed on the shelf, however I like how it turned out -I changed the font to one that Augie from jame gam made, I think it turned out great -It might look like I didn’t do much for having 9h for this devlog, but I swear the problems where mainly caused by addding the new features because the UI just wouldn’t collaborate I geniuenely spent half of the logged time triying to make it work,in the end I asked claude for help and he came up with a genius solution(in my opinion). As I said earlier, I also spent a lot of time triying to make the phisical coffes appear on the shelf but I think the solution i found withe the counetr is better."}, {"post_id": 26822, "ts": "2026-07-11T20:43:58Z", "hours": 2.5356, "text": "Hi everyone, Today I again focused on the UI: -I gave text to the upgrade buttons by giving information on what levek they where, I also made (in my opinion) a pretty good sistem for changingthe level etxt as you upgarde -I added a button that gives information about what each upgrade does, in the future I want show the information by just hovering over the upgrade button -I implemented a feature that my friend suggested, when customers are leaving, above their heads gets displayed how much they’ve payed, this feature wasn’t too easy to program, because I again had to find a way for the game to know when the customer was leaving, but I always haev fun programming these things because I learn a lot of ways, like the fact that if you use a while() loop in the update function, when you press play unity freezes, anyway that wasn’t the real issue, the real issue is that while wanting to delete a gameobject taht I didn’t need, I accidentally deleted the SCRIPTS FOLDER, I panicked when I saw the message and I clicked “cancel” but it was too late, after failing at trying to save the files that I had in VS code, I was about to go retrieve my github code and lose hours of todays progress + hours setting up again the scripts, but then I remembered that if you delete something in unity on windows, the thing doesn’t get totally deleted but goes to the trash bin, so I went to the trash bin with hope and succeded, I restored the folder and magically in unity everything went back to it’s original position, I think I lost 10 years of life by this problem -On the good side I found a super cool font made by Augie from hackclub, she’s the one that runs tha jame gam on slack"}, {"post_id": 26194, "ts": "2026-07-10T21:06:53Z", "hours": 2.7431, "text": "Today i focused on improving the games UI: -I fixed the problem of the ballon by using a UI image and changing it’s sprite(before i has the ballon sprite like a normal game object, to be honest it didn’t take as much as I thought it would to fix this) -The most time was spent making the second upgrade work, because it was a pain understanding the logic to implement the upgrade, wich shortens the time of customers arriving, but it was actually very fun implementig this upgrade bevause I had to think of workarounds around the problems that were coming up -quick side note: in the first devlog i was saying how cool it was VS code autocompletition, quick update it’s starting to piss me off because it’s suggestions aren’t very helpful when i’m implementing totally new features -I added a pause button, wich wasn’t really simple but it’s because I kept getting distracted when setting it up in the UI -added a window that opens and shows a red panel, tomorrow I’ll tell what’s it for -lastly I sent my friend a quick demo to playtest so he can give me some ideas, best decison ever, he gave me some amazing suggestions and gave me inspiration for some other ideas, I did it because I didn’t know what else to add, I hope tomorrow I’ll be able to add some of the ideas"}, {"post_id": 25508, "ts": "2026-07-09T20:30:43Z", "hours": 3.6728, "text": "Today I: -added UI that displays the amount of money you have -Added a very simple ballon that displays a button wich makes you serve the customer -Added one upgrade that increases the money you get from selling, when adding this the panel behind the button kept disappearing when serving the customers, and then I freaked out because the customers weren’t moving after the order, i spent something like 45-50 minutes trying to understand why, in the end somehow the panel of the upgrade somehow ended up in the gamemanagers code, where it should have been the customers ballon panel -added a limit to the amount you could upgrade the shop -then I spent like 30 minutes trying to make a second customer, using the same script as the first one, in the and I made a new script because the previous script was connected to the other scripts and it would have taken too long to do rather than a new script(wich still took long to setup with the other logic in the game), but in the future I hope to find a way to optimize creating new customers by making it easier -after like an hour of me starting todays work when setting up the ballons and trying them by running some playtests, I ran into the most timewasting problem I’ve encountered for now, wich was so stupid but at the same time so frustrating, during the playtests when changing the game window size evrything going out of place especially the buttons and the ballon, I spent most of the time trying what was the problem then I realized that I didn’t change the canvas scale mode to “scale eith screen size”, it doesn’t need to eb said that I felt very dumb after that(I still don’t know why but the ballon + the button still give me problems) -in the next devlog I hope to: fix the ballon problem and to improve it, complete the upgrade list by adding at least 2/3 upgrades"}, {"post_id": 24863, "ts": "2026-07-08T18:30:08Z", "hours": 2.1375, "text": "-Did basic customer logic -Spent 30 minutes trying to understand why the collision trigger didn’t work, discovered that i also needed at least 1 rigidbody 2D -Discovered better ways to exchange data between scripts -Was surprised about how accurate is Visual Studio code auto completition -Unfortunately I only did only the customer basic logic(very basic) because of the time it took to fix all the errors and functions -Next devlog I hope to add a UI that displays Data and implement the game loop by adding upgrades"}]...
|
Title: Cozy cafè demo by @dragoncat404 | Stardance Title: Cozy cafè demo by @dragoncat404 | Stardance
Devlogs:
-Did basic customer logic -Spent 30 minutes trying to understand why the collision trigger didn’t work, discovered that i also needed at least 1 rigidbody 2D -Discovered better ways to exchange data between scripts -Was surprised about how accurate is Visual Studio code auto completition -Unfortunately I only did only the customer basic logic(very basic) because of the time it took to fix all the errors and functions -Next devlog I hope to add a UI that displays Data and implement the game loop by adding upgrades
Today I: -added UI that displays the amount of money you have -Added a very simple ballon that displays a button wich makes you serve the customer -Added one upgrade that increases the money you get from selling, when adding this the panel behind the button kept disappearing when serving the customers, and then I freaked out because the customers weren’t moving after the order, i spent something like 45-50 minutes trying to understand why, in the end somehow the panel of the upgrade somehow ended up in the gamemanagers code, where it should have been the customers ballon panel -added a limit to the amount you could upgrade the shop -then I spent like 30 minutes trying to make a second customer, using the same script as the first one, in the and I made a new script because the previous script was connected to the other scripts and it would have taken too long to do rather than a new script(wich still took long to setup with the other logic in the game), but in the future I hope to find a way to optimize creating new customers by making it easier -after like an hour of me starting todays work when setting up the ballons and trying them by running some playtests, I ran into the most timewasting problem I’ve encountered for now, wich was so stupid but at the same time so frustrating, during the playtests when changing the game window size evrything going out of place especially the buttons and the ballon, I spent most of the time trying what was the problem then I realized that I didn’t change the canvas scale mode to “scale eith screen size”, it doesn’t need to eb said that I felt very dumb after that(I still don’t know why but the ballon + the button still give me problems) -in the next devlog I hope to: fix the ballon problem and to improve it, complete the upgrade list by adding at least 2/3 upgrades
Today i focused on improving the games UI: -I fixed the problem of the ballon by using a UI image and changing it’s sprite(before i has the ballon sprite like a normal game object, to be honest it didn’t take as much as I thought it would to fix this) -The most time was spent making the second upgrade work, because it was a pain understanding the logic to implement the upgrade, wich shortens the time of customers arriving, but it was actually very fun implementig this upgrade bevause I had to think of workarounds around the problems that were coming up -quick side note: in the first devlog i was saying how cool it was VS code autocompletition, quick update it’s starting to piss me off because it’s suggestions aren’t very helpful when i’m implementing totally new features -I added a pause button, wich wasn’t really simple but it’s because I kept getting distracted when setting it up in the UI -added a window that opens and shows a red panel, tomorrow I’ll tell what’s it for -lastly I sent my friend a quick demo to playtest so he can give me some ideas, best decison ever, he gave me some amazing suggestions and gave me inspiration for some other ideas, I did it because I didn’t know what else to add, I hope tomorrow I’ll be able to add some of the ideas
Hi everyone, Today I again focused on the UI: -I gave text to the upgrade buttons by giving information on what levek they where, I also made (in my opinion) a pretty good sistem for changingthe level etxt as you upgarde -I added a button that gives information about what each upgrade does, in the future I want show the information by just hovering over the upgrade button -I implemented a feature that my friend suggested, when customers are leaving, above their heads gets displayed how much they’ve payed, this feature wasn’t too easy to program, because I again had to find a way for the game to know when the customer was leaving, but I always haev fun programming these things because I learn a lot of ways, like the fact that if you use a while() loop in the update function, when you press play unity freezes, anyway that wasn’t the real issue, the real issue is that while wanting to delete a gameobject taht I didn’t need, I accidentally deleted the SCRIPTS FOLDER, I panicked when I saw the message and I clicked “cancel” but it was too late, after failing at trying to save the files that I had in VS code, I was about to go retrieve my github code and lose hours of todays progress + hours setting up again the scripts, but then I remembered that if you delete something in unity on windows, the thing doesn’t get totally deleted but goes to the trash bin, so I went to the trash bin with hope and succeded, I restored the folder and magically in unity everything went back to it’s original position, I think I lost 10 years of life by this problem -On the good side I found a super cool font made by Augie from hackclub, she’s the one that runs tha jame gam on slack
In the last few days I focused on Adding one of the core features of the game and also solving problems about UI and code not collaborating: -I added the new feature that I’ll be expanding in the next few days, for now you prepare the coffes by clicking the button then take the coffes and drag them with the mouse to the white square that sends them to the shelf and increases the counter, by using the third upgrade you can increase the amount of coffes you can make and have on the shelf at the same time, in the next days I’ll be focusing on making art for the game -I drew and added the new coffe shop art -I added a drag&drop system for the kitchen panel -Added the third upgrade with it’s related info, and added real time upgrade prices in the info panel -While making the kitchen panel feature I ran in a logic problem that afer a lot of hours spent trying many ways to fix it, I had to ask claude to help me fix it, the AI actually came up with a genius solution to the problem since my logic for the bool variable was a total mess that I don’t even know how it got so messy -I fixed a bug where if both customers where near the shop you could only serve the one on the right, it was a simple fix, the two canvas where only overlapping eachother -I had to give up the idea of the coffes directly moving on the shelf after preparing them because of transform issues, and use a coffe counter that’s displayed on the shelf, however I like how it turned out -I changed the font to one that Augie from jame gam made, I think it turned out great -It might look like I didn’t do much for having 9h for this devlog, but I swear the problems where mainly caused by addding the new features because the UI just wouldn’t collaborate I geniuenely spent half of the logged time triying to make it work,in the end I asked claude for help and he came up with a genius solution(in my opinion). As I said earlier, I also spent a lot of time triying to make the phisical coffes appear on the shelf but I think the solution i found withe the counetr is better.
Hi everyone, sorry for the radio silence but I was perticipating in the GMTK2026. I’m being forced to post because of the 10h limit, I’ve done a lot of things since the last devlog. I’ve: -Done the core game mechanic of preparing the coffes -Done a LOT of game art, I think I finished all the art for now -I fixed the leftover bugs, now the current version is bug free (I think), they were a lot and many were time consuming -I implemented a random skin change for the customer so that the customer doesn’t feel repetitive I know I’ve said I’ve done a lot of things, but the great majority of the things done were bug fixes and it would take a lot to list them all
Hey everyone this is the last devlog of the demo for cozy cafe because the demo version is finished. The last things that I’ve done before finishing it were: -solving some leftover minor bugs -Fixed the random customer skin change because the one customer would have the same skin as the other customer -I’ve made the main menu for the game -I’ve added music to the game -I’ve adde an SFX for when the customers pay For the next version of the game I’ve got a lot of ideas wrote in my notebook, and since the core logic of the game has already been made, these additions should be easy to add, since most of them are visual changes and adding features to already existing mechanics
I’m being forced to post because of the 10h limit this is still work in progress For now since the last post I’ve done: The new drink with all the filling and serving functions Added the new drink as a possible order for the customer added a menu where you purchase the new drinks added a dropdown to select the drink you want to make As I expected adding the new features with the core game logic already done is much easier, I stilll run into bugs but I fix them way more easily, after finishing implementing the drink feature I think I’ll improve the UI, but after that I have to decide on what to do since I do have an idea but I don’t know how long it will take to add and if it’s even worth it, anyway I’ll go back to finishing the new feature
After the last devlog I’ve finished the new drink feature and done some other things, so here’s what Changed: I’ve finished the New drink feature and implemented it with the game I’ve finished the menu where you have to purchase the drinks before having the option to make them, when I’ll add new drinks I’ll put having purchased the previous drink as a requirement to unlock the next one I’ve added a custom cursor I’ve solved the bug where when you dragged an object the object would’nt follow the cursor exactly and would just fly forward, turns out the canvas that was being used was changing into the wrong one since it was manually put in, I’ve changed it to automatically assign the canvas now at the start the kitchen is empty and by purchasing the coffe drink that makes appear the utensils to make coffe Now the next thing to implement is more SFX and other kinds of tracks , I’ll be adding something cool to change the music that’s playing and give the option to import songs to play, this will be the next feature along with some UI improvements like some animations for the menus . I won’t tell yet what the thing to change the music is, because first I want to see if it’s doable Anyways I wont’t be able to work on the game for a few days, because I’ll be away from home and won’t have internet access, but I’ll be doing some redesigns of the game art on my sketchbook during the time being and also researching if the feature can be done.
Hey everybody, Sorry if I again went on radio silence but I was partecipating in the brackey game jam 2026.2 with jame gam. Anyways as always I’m being forced to post because of the 10 hour limit so some things are WIP what I’ve done I’ve read the feedback from the ship and a lot of people wanted a tutorial at the start, for now I can’t do that since the game is still in rough shape , but I added a tooltip so that people hopefully understand better how to play Now I’ve got some bad news, in this version I won’t be able to add the custom music changer I talked about in the last devlog, simply because it’s very hard and I couldn’t find any useful tutorials, hopefully in the next version I’ll be able to add it, I’ve like spent 3 hours searching ways to do it but I can’t figure it out I’m adding a shift system where you complete the day and it gives you all the statistics of the day, and maybe I’ll re-work the upgrade feature so that you can upgrade only after the shift ends and maybe add something like rush hour at certain hours, but to do that I’ll need to rework hoe the customers work thanks for the feedback I want to say thank you to all the people that gave feedback to the game I’ll try implementing your feedback, and also thanks for all the comoliments for the game I appreciate it very much Now I’m going back to work see you in the next devlog
Hey Everyone! you might already hev guessed it, The 10 hour limit is very close so I’m making a devlog. things done since last one finished making the shift system in it’s entirety(even if it’s still a bit buggy) the shift system also resets the customers position I’m adding a shop for after the shift where you can buy the drinks and upgrades upgrades and drink upgrades have been moved to the shop (I know it’s a drastic decision but I’ll explain why at the end) I made the art for the end of the shift summary, I’m super proud of it it looks way too good I locked the Orange juice behind the completition of day 2 made the start new shift system I’ve also fixed some leftover bugs from the time system of the shift system done the fade in fade out effect, that I need to tweeak because in some areas it takes too much time explanations I’ve moved the upgrades to the new shop area because after I ship the new version I’ll rework completely the gameplay, if anyone has ever played good pizza, great pizza is going to be familiar with the gameplay, I’ll change the look of it so that you see behing the counter, this is going to make the game way easier to manage and more fun, since this way the customer are going to be a lot easier to implement, and the drink making process is going to be more fun. Hope you’ll understand my decision, I’ve spoken to my friend that also does game dev and he said it’s a good idea. Now the gameplay is more boring? sure but in the next ship it’s going to be (hopefully) a completely different game P.S. the videos aren’t everything I added.
Hey everyone, this is the last devlog before shipping the project for the second time. Since last time I’ve done some touch ups like Making some art for the game like the lock so that people understand that it’s locked behind the completion of day 2 Changing the “¥” symbol with a custom made icon Adding the description to the Items in the shop ecc. fixed a bug where the fade in and out effect for starting a new shift would be way too long fixed all the minor bugs that we’re making the playing the uncomfortable had to disable the custom cursor because it would look giant in the actual build of the game And that should be it, I may have forgot something but please forgive me, I finished my notebook where I would write down all the stuff I did Thanks everyone for the support, I can’t wait to rebuild the new gameloop
Ships:
I made a cozy game where you manage a coffe shop in the forest. The most challenging part of making the game was the coffe making mechanic and everything related to it, because there was a lot of problems and there weren’t many tutorials that were useful, so I had to think of ideas and re-think those ideas when they didn’t work. The thing I’m the most proud of is the game art since I’m not the best at drawing, and I think it turned out really well, but the main menu Background is my favourite that I made. This game is a demo and has a really short gameplay(10 min), for the next version I have a lot of things I want to add they’re all written in my notebook, and since the core mechanics are already made adding new features is gonna be easier. The project can be both played in browser on itch.io and be downloaded on itch.io(the instructions on how to install are both on itch and the github readme). Since the controls are mouse and click it can be kinda played on mobile, just that the resolution isn’t made for mobile, but it’s playable
Hi, this is the second ship for my game cozy cafe. This version adds a lot of features, and bug fixes, altough it’s more boring compared to the last one because of some drastic changes I made that will benefit the game in the next version. The most challenging thing in this version was making the shift system that makes the player able to play the game for an undefined amount of time. The most time consuming thing to do was the new drink since the way I made drinks work sucks, it’s very unnecessary complicated. The thing I’m very proud of is the end of shift summary sequence and the drawing, I can’t even describe with words how much I’m proud of it (especially the drawing) Before you play the project and rate it you should know that I’m aware that the game-loop is boring, in the next version I’m gonna change the game loop so that your view is from behing the counter and change a lot of things (kinda like in great pizza good pizza). If you would like to leave feedback of any kind like what you would like to see in the next version, suggestion on new drinks or upgrades feel free to tell them I’ll try to implement all of them as best as I can. In the next version I’m gonna try to also do a tutorial but I can’t promise anything. I don’t have any screenshots that can represent the project in action, so here you go the GIF from github and a picture of cozy, the games mascot...
|
1793000828.7049277
|
1793087228.7049277
|
|
38886
|
WEB APP FOR STUDENTS by @Uxyamo | Stardance
|
Uxyamo
|
3
|
76.0
|
621
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-20T06:40:42Z", "hours": 18.0, "multiplier": 8.4, "payout": 99, "blessing": "neutral", "text": "I’m going to continue improving my project with some others creatorsn and thanks you everyone for all the support I had!!! Good luck!!", "repo": "https://github.com/mbbs-iam/APP---FermatNote---Make-my-Grades", "demo": "https://cuentasfermat.web.app/"}, {"ship_num": 2, "ts": "2026-08-28T16:13:00Z", "hours": 4.0, "multiplier": 12.19, "payout": 43, "blessing": "neutral", "text": "Hi everyone! This project is for the delegates, 12 delegates of the best Hightschools in France and Morroco will use it the next year. A big tech company will help me with giving me servers to deploy my app.", "repo": "https://github.com/mbbs-iam/APP---FermatNote---Make-my-Grades", "demo": "https://cuentasfermat.web.app/"}, {"ship_num": 3, "ts": "2026-08-16T08:22:09Z", "hours": 54.0, "multiplier": 10.6, "payout": 479, "blessing": "neutral", "text": "Hi everyone! This project is for the delegates, 12 delegates of the best Hightschools in France and Morroco will use it the next year. A big tech company will help me with giving me servers to deploy my app. I am developing Fermat-Note, an application designed especially for high school and higher education students to centralize everything: class chat, shared homework management, self-help forums and collective organization. The app allows the class to be more organized and connected to improve class performance. Thanks you so much, I would like you to appreciate it, and if you would like to use it for your class, send me a message!! ❤️👌👌", "repo": "https://github.com/mbbs-iam/APP---FermatNote---Make-my-Grades", "demo": "https://cuentasfermat.web.app/"}]...
|
[{"post_id": 81181, "ts": "202 [{"post_id": 81181, "ts": "2026-10-20T06:39:31Z", "hours": 1.7442, "text": "I decided that because all students use discord, instagram and more I will transform my PWA into an app so they will can use that apps in my app"}, {"post_id": 76794, "ts": "2026-10-04T16:11:16Z", "hours": 15.7992, "text": "Some modifications…"}, {"post_id": 56718, "ts": "2026-08-28T16:12:12Z", "hours": 3.5033, "text": "Hi everyone, there is some students that want to help me the next year, I readed all the messages of my deploy and I decided that it will be international"}, {"post_id": 47987, "ts": "2026-08-16T08:17:36Z", "hours": 0.3178, "text": "I finished the project!! Thanks yo evryone that helped me and followed me in my project!!"}, {"post_id": 47541, "ts": "2026-08-15T14:48:56Z", "hours": 3.5642, "text": "Already finished the diaporama for the students that will use my app!! Take a look please, and say me what to improve!!"}, {"post_id": 46530, "ts": "2026-08-13T20:28:50Z", "hours": 5.1931, "text": "I already deployed the project to 12 firebase accounts to let the students use my project the next year and I would like it to help them. I alse send them to each delegue an email to say them what they have to do"}, {"post_id": 45816, "ts": "2026-08-12T15:19:22Z", "hours": 2.1239, "text": "Use the app now for free with all the hightschools above France!! Link: https://cuentasfermat.web.app/ The password is : ChromaFermat@2026 Have fun!! 😊😊"}, {"post_id": 45595, "ts": "2026-08-12T05:53:03Z", "hours": 1.1178, "text": "Best 12 Hightschools use my app. They’re happy with it Already finished !! I will do an audit to see if they’re is some bugs and I will deploy it !!"}, {"post_id": 45170, "ts": "2026-08-11T14:20:09Z", "hours": 4.26, "text": "There’s 12 Hightshools that will use my app. I already ended the app. Thanks you for all those who helped me, and followed me in my project❤️❤️❤️❤️ I’m sorry that the app is it in french, i will translate to english for the next version. If youre interested to use that app at your hightschool I can translate it to your language."}, {"post_id": 43311, "ts": "2026-08-08T14:38:46Z", "hours": 4.4058, "text": "I finished three sections of my app, I love it. I used the free API of lemonde.fr (french news) to have the news all days. I also finished and added some features on the chat section. And I writed a message to the best High school at France to use it. Finnaly, at the configuration section, I added the list of all the membres of the class (they’re bots)"}, {"post_id": 41494, "ts": "2026-08-05T18:52:57Z", "hours": 1.5481, "text": "Already 10 high schools are going to use my app! I created this app for high schools in France, and a big tech company will help me deploy it throughout France. I will translate it to English next day. I also created a form, and so many people have already responded! I really enjoyed setting it up to connect with everyone."}, {"post_id": 40272, "ts": "2026-08-03T18:13:14Z", "hours": 1.2458, "text": "I configurated the chat section, and it works well, I have some users that use it. I used Firebase with the free trial to connect all the user messages so we can talk together. I did it fast because I already started yesterday, also I added a lot of buttons that spoils all the features that the app will have. Please like my post to let other people se my project, and if they’re interested to use it in they’re class."}, {"post_id": 40025, "ts": "2026-08-03T11:28:39Z", "hours": 2.4278, "text": "I finished the PowerPoint that I will send to delegates from different hightschools in France. I don’t have a good english so I translated it in english with translator. Please tell me what you think about the project, and if you should recommend me to improve some things. Thankss!!"}, {"post_id": 39633, "ts": "2026-08-02T19:12:07Z", "hours": 8.9369, "text": "That’s amazing. Hello !! I’m working on a project for studentsss!!! I’m so motivated because a big tech company will help me giving me servers to deploy it on all France. I’m working a lot, I’ve contacted already some people of the best hightschools in France to use my app. I will improve all and add features. I’m sorry, it’s in French because I’m french and will be used by French people, but if I see that more people are interested I will translate it to english, and at the end of the project I will translate it to english if they’re people that want it"}, {"post_id": 34515, "ts": "2026-07-25T09:32:54Z", "hours": 19.0533, "text": "I’m working a lot, I would like to create a an app that is like the schools apps for see our degrees but for students. It will be fun, and in an Inthership with a big company of tech and they said that they will help me. That motivated me a lot 😊😊"}]...
|
Title: WEB APP FOR STUDENTS by @Uxyamo | Stardance Title: WEB APP FOR STUDENTS by @Uxyamo | Stardance
Devlogs:
I’m working a lot, I would like to create a an app that is like the schools apps for see our degrees but for students. It will be fun, and in an Inthership with a big company of tech and they said that they will help me. That motivated me a lot 😊😊
That’s amazing. Hello !! I’m working on a project for studentsss!!! I’m so motivated because a big tech company will help me giving me servers to deploy it on all France. I’m working a lot, I’ve contacted already some people of the best hightschools in France to use my app. I will improve all and add features. I’m sorry, it’s in French because I’m french and will be used by French people, but if I see that more people are interested I will translate it to english, and at the end of the project I will translate it to english if they’re people that want it
I finished the PowerPoint that I will send to delegates from different hightschools in France. I don’t have a good english so I translated it in english with translator. Please tell me what you think about the project, and if you should recommend me to improve some things. Thankss!!
I configurated the chat section, and it works well, I have some users that use it. I used Firebase with the free trial to connect all the user messages so we can talk together. I did it fast because I already started yesterday, also I added a lot of buttons that spoils all the features that the app will have. Please like my post to let other people se my project, and if they’re interested to use it in they’re class.
Already 10 high schools are going to use my app! I created this app for high schools in France, and a big tech company will help me deploy it throughout France. I will translate it to English next day. I also created a form, and so many people have already responded! I really enjoyed setting it up to connect with everyone.
I finished three sections of my app, I love it. I used the free API of lemonde.fr (french news) to have the news all days. I also finished and added some features on the chat section. And I writed a message to the best High school at France to use it. Finnaly, at the configuration section, I added the list of all the membres of the class (they’re bots)
There’s 12 Hightshools that will use my app. I already ended the app. Thanks you for all those who helped me, and followed me in my project❤️❤️❤️❤️ I’m sorry that the app is it in french, i will translate to english for the next version. If youre interested to use that app at your hightschool I can translate it to your language.
Best 12 Hightschools use my app. They’re happy with it Already finished !! I will do an audit to see if they’re is some bugs and I will deploy it !!
Use the app now for free with all the hightschools above France!! Link: https://cuentasfermat.web.app/ The password is : ChromaFermat@2026 Have fun!! 😊😊
I already deployed the project to 12 firebase accounts to let the students use my project the next year and I would like it to help them. I alse send them to each delegue an email to say them what they have to do
Already finished the diaporama for the students that will use my app!! Take a look please, and say me what to improve!!
I finished the project!! Thanks yo evryone that helped me and followed me in my project!!
Hi everyone, there is some students that want to help me the next year, I readed all the messages of my deploy and I decided that it will be international
Some modifications…
I decided that because all students use discord, instagram and more I will transform my PWA into an app so they will can use that apps in my app
Ships:
Hi everyone! This project is for the delegates, 12 delegates of the best Hightschools in France and Morroco will use it the next year. A big tech company will help me with giving me servers to deploy my app. I am developing Fermat-Note, an application designed especially for high school and higher education students to centralize everything: class chat, shared homework management, self-help forums and collective organization. The app allows the class to be more organized and connected to improve class performance. Thanks you so much, I would like you to appreciate it, and if you would like to use it for your class, send me a message!! ❤️👌👌
Hi everyone! This project is for the delegates, 12 delegates of the best Hightschools in France and Morroco will use it the next year. A big tech company will help me with giving me servers to deploy my app.
I’m going to continue improving my project with some others creatorsn and thanks you everyone for all the support I had!!! Good luck!!...
|
1792990616.8690119
|
1793077016.8690119
|
|
41290
|
My take on a whiteboard by @jayeshsinghal | Starda My take on a whiteboard by @jayeshsinghal | Stardance...
|
jayeshsinghal
|
1
|
49.0
|
618
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-04T22:17:55Z", "hours": 49.0, "multiplier": 12.53, "payout": 618, "blessing": "neutral", "text": "What I made was a whiteboard for myself with infinite zoom and an easy space to organize notes. I was challenged by a lot of things, but I took time to work through them. Especially challenged by the export.", "repo": "https://github.com/jsplaystore/Whiteboard", "demo": "https://whiteboard-eastside.vercel.app/"}]...
|
[{"post_id": 41013, "ts": "202 [{"post_id": 41013, "ts": "2026-08-04T22:10:41Z", "hours": 2.2008, "text": "FINAL DEVLOG BEFORE SHIP. (I spent 47 hours teaching myself to build a whiteboard this week 😭) Thats not a problem, I didn’t have anything to do anyway. Okay, what i’ve done. First off I did the PDF export but then I realized that its not helpful at all to have a static image of an infinite zoom whiteboard, so I made an adjustment to an HTML export. (this took quite a while because i’ve never implemented an export before so I had quite a bit of debugging to do, excerpt of the script below.) I also added the right click. Anyway, pushing to vercel and finalizing github now."}, {"post_id": 40945, "ts": "2026-08-04T19:57:29Z", "hours": 2.1164, "text": "Okay, so what I realized is that you can’t navigate the whiteboard using anything, so I added right-click scroll. More detailed devlog later once I finish up the Export."}, {"post_id": 40555, "ts": "2026-08-04T05:46:44Z", "hours": 6.4878, "text": "got a lot done today. Devlog #7 or 8? Anyway, I took some time to fix the sticky note issue. addNote mixed units. When centering a new note, it subtracted a screen-pixel offset (NOTE_WIDTH/2) directly from a world-space coordinate instead of dividing it by scale first. CSS transform: scale() made text blurry. My first attempt at “scale with zoom” applied a single CSS scale() transform to the whole notes layer. So those issues were fixed and the sticky notes scale with zoom. I then ran into the issue of not being able to find sticky notes zoomed in alot, so I made a minimap to find your notes. (I think its getting really complex) Anyway… Added a small canvas, bottom-right corner, that: Computes the bounding box of all your strokes + notes (reusing the same bounds logic as “Fit content”), unioned with your current viewport so the indicator is always inside the map. Fits that box into a 200×140px canvas and redraws it every frame: strokes as thin dark lines, notes as colored rectangles. Draws your current viewport as a purple rectangle with a translucent fill and a 14px minimum size, so it doesn’t shrink to invisibility when you’re zoomed in a lot. Is clickable: clicking anywhere on it pans the main view to that spot (inverting the same fit-to-box math used to draw it). Now, last addition I want to do is add PDF export, and I think this is ready to ship. Images attached of progress! See ya in the next one."}, {"post_id": 39912, "ts": "2026-08-03T06:41:55Z", "hours": 5.2158, "text": "Okay – productive day today (i think) Unfortunately, I tried to implement sticky notes but I got pretty frustrated becasue I couldn’t get them to scale with the zoom of the whiteboard (super complex for some reason), so i am going to put more time into and see what I can do. It’s pretty late so expect a more detailed devlog tomorrow."}, {"post_id": 38884, "ts": "2026-08-01T13:31:28Z", "hours": 5.8733, "text": "I’m back. Devlog 6. Heres what i’ve done: Added a partial eraser that removes the point under the cursor and splits the stroke into remaining pieces. Effectively unlimited zoom now added, range widened from 0.0005×–2000× to 1e-6×–1e6× (true infinity isn’t representable in floating point, but this is far beyond any practical drawing scale). Fit content button now allows you to not lose your notes in the big space… computes the bounding box of everything drawn and animates the view to frame it all, so no matter how far you’ve zoomed in or out, you can always snap back and find your notes instead of losing them in empty space What to do: Lessen the speed of zoom Add more features. Images are the partial eraser working"}, {"post_id": 38509, "ts": "2026-07-31T22:48:10Z", "hours": 5.9586, "text": "Okay, so today I took some time to fix things from yesterdays devlog Oh wait, Devlog #5 (i think) Here’s what I did: pointermove now pulls getCoalescedEvents() to capture every sub-frame sample the browser batched (previously only the latest position per frame was used, which is what caused faceting on fast circular motion). Also added a small minimum-distance filter (~1.2 screen px) to suppress mouse-sensor jitter without losing shape on fast strokes. wheel input now updates a targetView and a requestAnimationFrame loop eases the actual view toward it (lerp factor 0.3) instead of snapping instantly. Panning or hitting Reset cancels any in-flight zoom animation and re-syncs the target so it doesn’t jump afterward. Same issue with the infinite zoom is only about 20000x so I think by slowing the zoom increments will give the illusion of more “infinite zoom”. Also, things will get small so you can lose notes so I am going to try and workshop some solutions. Overall, progress being made."}, {"post_id": 38011, "ts": "2026-07-31T04:29:18Z", "hours": 5.8892, "text": "Okay, so devlog #4, and probably the last one for today… Here is what i’ve done: Infinite zoom, scale range widened from 0.1×–8× to 0.0005×–2000× (effectively unbounded for practical use), plus an adaptive dot grid that keeps spacing readable at any zoom level so the space still feels navigable instead of a blank void. Added a live zoom-% readout and a “Reset view” button in the toolbar. (Screenshots below) – Also, infinite zoom not totally infinite yet, but its more “infinite” than the last devlog, also need to workshop this. Smoother strokes, replaced straight lineTo segments between raw pointer samples with quadraticCurveTo through midpoints, so fast circular motions render as smooth curves instead of jagged polygons. (Before and After below) – Honestly, its still kinda sucky, and maybe even worse then before, so I have to workshop this a little bit over the next few devlogs… Added reset view and view UI buttons, but not working yet, so this will be done next as well. Things left to do (aside from whats highlighted above): Add more features Make it more quirky Make it less boring Collaborative whiteboard??? (probably not.) First three kinda the same lol."}, {"post_id": 37900, "ts": "2026-07-30T21:49:25Z", "hours": 4.8006, "text": "Devlog #4 – I think? What I’ve done: Calibrated the mouse tool Created a stroke eraser (not semi) What to do? Stroke semi-eraser Infinite zoom Add various features as I think them up"}, {"post_id": 37416, "ts": "2026-07-30T03:37:15Z", "hours": 4.5544, "text": "Devpost 3! What I’ve Done: After a bit of learning, I was able to build the initial whiteboard and deploy it in my browser. I was also able to afix a drawing tool to it, so you can draw things. Things I need to do: Draw tool is not calibrated correctly with mouse (see attachment below; black point represents where my mouse is clicking) Can’t zoom infinitely Your ideas are permanent (which is not ideal), so I will make an erase feature. Overall, its very barebones and boring. As always, I’ve attached a sample of the code I’ve added."}, {"post_id": 37236, "ts": "2026-07-29T19:51:38Z", "hours": 3.9142, "text": "Hi Everyone! Devlog #2 for my own whiteboard project… So far what i’ve been able to to do is 2 things, I removed the boilerplate assets from the Vite setup and I had App.tsx render a bare resizable to serve as the base for my whiteboard… Attached is an image of the base whiteboard script…"}, {"post_id": 36825, "ts": "2026-07-29T03:59:48Z", "hours": 2.3256, "text": "Learned about Vite frontend which is a software to build things like whiteboards with the features that I want, and built the scaffolding… took a bit of debugging but I figured it out."}]...
|
Title: My take on a whiteboard by @jayeshsinghal | Title: My take on a whiteboard by @jayeshsinghal | Stardance
Devlogs:
Learned about Vite frontend which is a software to build things like whiteboards with the features that I want, and built the scaffolding… took a bit of debugging but I figured it out.
Hi Everyone! Devlog #2 for my own whiteboard project… So far what i’ve been able to to do is 2 things, I removed the boilerplate assets from the Vite setup and I had App.tsx render a bare resizable to serve as the base for my whiteboard… Attached is an image of the base whiteboard script…
Devpost 3! What I’ve Done: After a bit of learning, I was able to build the initial whiteboard and deploy it in my browser. I was also able to afix a drawing tool to it, so you can draw things. Things I need to do: Draw tool is not calibrated correctly with mouse (see attachment below; black point represents where my mouse is clicking) Can’t zoom infinitely Your ideas are permanent (which is not ideal), so I will make an erase feature. Overall, its very barebones and boring. As always, I’ve attached a sample of the code I’ve added.
Devlog #4 – I think? What I’ve done: Calibrated the mouse tool Created a stroke eraser (not semi) What to do? Stroke semi-eraser Infinite zoom Add various features as I think them up
Okay, so devlog #4, and probably the last one for today… Here is what i’ve done: Infinite zoom, scale range widened from 0.1×–8× to 0.0005×–2000× (effectively unbounded for practical use), plus an adaptive dot grid that keeps spacing readable at any zoom level so the space still feels navigable instead of a blank void. Added a live zoom-% readout and a “Reset view” button in the toolbar. (Screenshots below) – Also, infinite zoom not totally infinite yet, but its more “infinite” than the last devlog, also need to workshop this. Smoother strokes, replaced straight lineTo segments between raw pointer samples with quadraticCurveTo through midpoints, so fast circular motions render as smooth curves instead of jagged polygons. (Before and After below) – Honestly, its still kinda sucky, and maybe even worse then before, so I have to workshop this a little bit over the next few devlogs… Added reset view and view UI buttons, but not working yet, so this will be done next as well. Things left to do (aside from whats highlighted above): Add more features Make it more quirky Make it less boring Collaborative whiteboard??? (probably not.) First three kinda the same lol.
Okay, so today I took some time to fix things from yesterdays devlog Oh wait, Devlog #5 (i think) Here’s what I did: pointermove now pulls getCoalescedEvents() to capture every sub-frame sample the browser batched (previously only the latest position per frame was used, which is what caused faceting on fast circular motion). Also added a small minimum-distance filter (~1.2 screen px) to suppress mouse-sensor jitter without losing shape on fast strokes. wheel input now updates a targetView and a requestAnimationFrame loop eases the actual view toward it (lerp factor 0.3) instead of snapping instantly. Panning or hitting Reset cancels any in-flight zoom animation and re-syncs the target so it doesn’t jump afterward. Same issue with the infinite zoom is only about 20000x so I think by slowing the zoom increments will give the illusion of more “infinite zoom”. Also, things will get small so you can lose notes so I am going to try and workshop some solutions. Overall, progress being made.
I’m back. Devlog 6. Heres what i’ve done: Added a partial eraser that removes the point under the cursor and splits the stroke into remaining pieces. Effectively unlimited zoom now added, range widened from 0.0005×–2000× to 1e-6×–1e6× (true infinity isn’t representable in floating point, but this is far beyond any practical drawing scale). Fit content button now allows you to not lose your notes in the big space… computes the bounding box of everything drawn and animates the view to frame it all, so no matter how far you’ve zoomed in or out, you can always snap back and find your notes instead of losing them in empty space What to do: Lessen the speed of zoom Add more features. Images are the partial eraser working
Okay – productive day today (i think) Unfortunately, I tried to implement sticky notes but I got pretty frustrated becasue I couldn’t get them to scale with the zoom of the whiteboard (super complex for some reason), so i am going to put more time into and see what I can do. It’s pretty late so expect a more detailed devlog tomorrow.
got a lot done today. Devlog #7 or 8? Anyway, I took some time to fix the sticky note issue. addNote mixed units. When centering a new note, it subtracted a screen-pixel offset (NOTE_WIDTH/2) directly from a world-space coordinate instead of dividing it by scale first. CSS transform: scale() made text blurry. My first attempt at “scale with zoom” applied a single CSS scale() transform to the whole notes layer. So those issues were fixed and the sticky notes scale with zoom. I then ran into the issue of not being able to find sticky notes zoomed in alot, so I made a minimap to find your notes. (I think its getting really complex) Anyway… Added a small canvas, bottom-right corner, that: Computes the bounding box of all your strokes + notes (reusing the same bounds logic as “Fit content”), unioned with your current viewport so the indicator is always inside the map. Fits that box into a 200×140px canvas and redraws it every frame: strokes as thin dark lines, notes as colored rectangles. Draws your current viewport as a purple rectangle with a translucent fill and a 14px minimum size, so it doesn’t shrink to invisibility when you’re zoomed in a lot. Is clickable: clicking anywhere on it pans the main view to that spot (inverting the same fit-to-box math used to draw it). Now, last addition I want to do is add PDF export, and I think this is ready to ship. Images attached of progress! See ya in the next one.
Okay, so what I realized is that you can’t navigate the whiteboard using anything, so I added right-click scroll. More detailed devlog later once I finish up the Export.
FINAL DEVLOG BEFORE SHIP. (I spent 47 hours teaching myself to build a whiteboard this week 😭) Thats not a problem, I didn’t have anything to do anyway. Okay, what i’ve done. First off I did the PDF export but then I realized that its not helpful at all to have a static image of an infinite zoom whiteboard, so I made an adjustment to an HTML export. (this took quite a while because i’ve never implemented an export before so I had quite a bit of debugging to do, excerpt of the script below.) I also added the right click. Anyway, pushing to vercel and finalizing github now.
Ships:
What I made was a whiteboard for myself with infinite zoom and an easy space to organize notes. I was challenged by a lot of things, but I took time to work through them. Especially challenged by the export....
|
1792878783.0897236
|
1793742783.0897236
|
|
47947
|
Wintergreen: highly focused E-ink reading firmware Wintergreen: highly focused E-ink reading firmware! by @alec | Stardance...
|
alec
|
1
|
34.0
|
616
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-31T01:38:06Z", "hours": 34.0, "multiplier": 19.62, "payout": 616, "blessing": "neutral", "text": "Wintergreen is a custom firmware for the Xteink X4 e-ink device whose ideology refocuses back to what the device was originally made for: READING. So many custom firmwares have unnecessary features, bloat and a clunky UI which makes it slow and distracting from the original intent of this device. Wintergreen is hyperfast, optimized (for page refreshes, battery life, and especially page turns) and actually thinks about the buttons you need to press to get where you need to go. It only builds and includes what you need, and extra features like wifi syncing and bluetooth page turning support is optional (yet first-class, unlike almost all other firmwares!) This firmware offers numerous design improvements such as compiling/indexing books off-device (which is a huge QoL advantage), no settings menu (everything gets hardcoded into the binary which means no flash reads!) and ONLY partial ink refreshes used everywhere in the codebase. Every small action and ink change has been very carefully considered to bring the best possible experience to this small ereader and I’m really really excited for you to try it!", "repo": "https://github.com/amazinaxel/wintergreen", "demo": "https://github.com/AmazinAxel/wintergreen/releases/tag/1.0"}]...
|
[{"post_id": 58578, "ts": "202 [{"post_id": 58578, "ts": "2026-08-31T01:24:52Z", "hours": 0.5436, "text": "And… it’s done!! Sorry for a bit of the delay!! I finished writing out the new release and make a video demo of what the firmware entirely looks like now. I also realized that I forgot to send an image of the Wintergreen logo that I had made a few days back… I did it all with my iPad & Apple Pencil, unlike the firmware which I forked (nous) which just… made their image with AI? It looked so dang ugly… had to humanize it (as in MAKING IT MYSELF..) and I think it looks great (not to repeat from the last devlog lol, family thinks it looks cool as well and I am very proud of it) Anyways, I had to figure out how to compile a binary for you guys to flash without needing Platformio to build. Took me a bit to get it sorted out. Unrelated but reason why I hadn’t shipped yet is because I was trying to take a ton of sick pictures out in the wild, but it didn’t go so well. You can see some of the pics I liked in the github gallery and im putting another pic here (that you cant find anywhere else) just for fun! Anyways, gonna go ahead and ship this now (for real this time now tho lol)"}, {"post_id": 56259, "ts": "2026-08-27T23:05:16Z", "hours": 12.2083, "text": "(was trying to finish the last devlog but i needed 15 minutes of logging time lol) In the settings menu, check out the screenshot below and you’ll see a new Bluetooth clicker option!! So this one is actually insanely cool - when I did a talk at Linuxfest Northwest at Bellingham Tech in april 2026, I bought this small and simple bluetooth clicker with two buttons. And it worked great, but what if I can also use it for reading? The device has bluetooth, so I made a nice option for hardcoding a MAC address so it can connect to my clicker in just one press. Then, with the landscape option, I can leave the device on the ceiling or on a spot away (magnetically attached on to something) from my eyes and just use the page turning buttons. UNFORTUNATELY, I did not get this fully finished right now so it has errors and doesn’t connect reliably, and crashes the firmware so this is not finished as of now!!! :( To make matters worse, I tried to get rid of the serial communication since we didn’t really need it and I had never used it, so it was kinda just bloating up the codebase and now I can’t really debug this very well. I added the sync button in a convenient and sensible spot, but it is not functional yet. I hope for my next devlog to be my last, since I will finish the features here and make a nice video about it! Anyways, there was a ton of other stuff that I did as well but i kinda forgot, so maybe I’ll cover them in the next journal! And again, sorry for not devlogging in a bit! — end conituation of last devlog — ALRIGHT so i know i went over the 10 hour devlog thing and i did so much here that i dont know if i can fit it all in one devlog, but pretty much the firmware is done. I managed to get bluetooth working perfectly! It has zero memory leaks now (this took me so many hours 😭) AND it supports queued page turns! And now you can hold the previous page button to go back, and hold the next page to open the quickmenu/select something! And connections are faster & consistent now. The device struggled with a lot of crashes, but I’m happy to say that I’ve fixed it completely with another book format refactor!! So we can keep page caches for speedy page turns AND we get bluetooth support. Lots of safety checks to ensure memory safety! Sync got a major rework, so now it works to disable your bluetooth device when you run a sync to preserve memory! And it disables the bluetooth option so you can’t glitch the system out. Now it’s only used for getting/removing books, and positional sync has been removed since it was kinda jank. Also fixed a bunch of stuff with the homelab so its more reliable now! Lots of QoL stuff, like a low battery bar when you’re low on battery while reading (so it’s not distracting), better label names, removing unnecessary text like CHAPTER from the chapters selection, and faster button holding! More things like faster wakeups, refusing to boot when there’s no more SD card, and a massive cleanup because I had a really long debug session to fix the crashes with bluetooth. And I made the screen full-size vertically, for some reason we were missing some rows on the top which are now filled properly! And the thing I’m most proud of: theres a new splash screen that I made myself!! Spent several hours perfecting it and I’m very proud of how it came out. Check it out!!! Anyways, gonna make a vid and submit this project since I’m done!!"}, {"post_id": 53503, "ts": "2026-08-24T02:29:16Z", "hours": 8.5258, "text": "HUGE usability improvements, optimizations, and the first new features of this firmware!! So I know its been a few days since I haven’t posted an update here, but I have been reallly busy! I’ve got a lot of news, so let’s start from the top!! Really cool thing happened today and yesterday - I brought my XTEINK X4 with me out in public! So we went to the post office (sat in line for a few hours) and read 35% of Alice in Wonderland using this custom firmware! It felt amazing, I was productive (rather than doomscrolling on my phone) and I got immersed in the story. So yeah, this firmware works. Was not distracted, and it was INSANELY efficent because my battery is still at 100% and I haven’t charged it since Friday (that’s two full days of reading and its still at full battery! Gotta love optimizing firmware and e-ink displays!!) Now, this was mostly due to the major new optimizations that I have spent countless hours on. I experimented with turning off the display power rails after 5 seconds, but this was a realllly bad idea because I didnt test it properly and I ended up trying to read in bed with text overlapping each other because the power rails were actually needed to properly remove the old text during a page turn!! By far the most helpful optimizations were the preloading and caching everywhere. This allowed for partial refreshes throughout everywhere on the display, which means less energy is spent on a full refresh but instead on a smaller piece of the screen. This meant that I could both improve the performance and reduce latency of the application AND reduce power usage, which was a massive win!! I did a quick speed test comparison between my brother’s XTEINK running CrossPoint and my firmware and there is without a doubt that my firmware is faster now with these optimizations. Eyeballing it, it seems like i am getting 200% faster page turns and menu switching. As if I couldn’t optimize more, I managed a few more major improvements. I made compiled books more sensible, since they no longer require the epub on the device and embed everything in the highly optimized binary file format. I made the file format even faster with image handling, and it is about as small file-size as it gets, so you can drop an 8GB or 4GB card in the device and get more books on it. I personally think I wouldnt ever hit 2GB of books on the device! Structurally, the position files are no longer stored in a special directory and instead they are stored in the book folder, so you dont need to know its ID! And the actual data/settings are stored in a single file in the home now, so i just got rid of the .wintergreen/ folder, which is a nice little cleanup. This is as minimal as it gets now, SD card wise. This is better for the SD card health as well!! As for the reading experience, there is SO much new and improved stuff. You know the sleep cover that appears when you turn the device off? It had annoying bars on the sides or the top, which was really distracting. I experimented with a background which filled to the same color as the book background, yet it was ugly and didnt work with books which had a different color on the sides. So heres what I did differently which actually looks better than it sounds: i made the book stretch to fill! It actually makes the text look BETTER, everything looks nicer and we aren’t wasting any screen space with empty bars. Just look at the images below!! It looks amazing. And in the quick menu, I made it so you can select the actual book to continue reading it again, without needing to move your thumb to the back button. I use this feature so often since its conveniently placed at the top near the settings, so you can adjust a setting, go up and then start reading again. (I hit the 4000 character limit, posting a second devlog to finish this lol)"}, {"post_id": 50430, "ts": "2026-08-19T16:26:55Z", "hours": 4.0442, "text": "Finally reworked the UI! After changing up the system font, I finally went through ALL of the pages, reorganized them and made it usable. For starters, the home screen has a carousel now of the three most recently read books! I think it looks really nice. I also reworked how the buttons work, so now when you press the back button on the homepage, it’ll show you a list of all your books! This is very easily scrollable, which is perfect for a larger library. I also got rid of any unnecessary text everywhere, like the Wintergreen branding so everything just feels more clean. And it shows your reading percentage now! I made the reader options experience SO much more intuitive. The two reader options have seperators and I renamed the menu to better match its purpose within the code. The chapters are easier to scroll now because we have adjustable button hold speeds, and the percentage of the book and chapter read has been moved into the book name and chapter name respectively! So the buttons got me all confused, since it feels swapped sometimes. I made the side buttons intentionally swap top/botttom when you’re not in landscape, so things feel a bit more intuitive whether you’re in Portrait mode or not! And of course the obligatory cleanup. Renamed a bunch of stuff and made the repo simpler with a massive reorganization effort, from /lib/wintergreen to just /wintergreen!"}, {"post_id": 49377, "ts": "2026-08-18T05:16:46Z", "hours": 4.1403, "text": "Made a LOT of progress on the device’s usability! First and foremost, as you can see from the images, I updated all the fonts. While yes, I would agree that Iosevka is not a great e-ink reading font, it makes for a good UI monospaced font. I also updated the font to Atkinson Hyperlegible which looks absolutely amazing. Just take a look at it yourself! I removed font sideloading so this is the forced font for all epubs. Learned a bit about font kerning and it looks pretty well-spaced now. Secondly, the UI is a bit outdated but I got rid of even more book-related settings. Now it shows you the chapters in the book menu without any additional button presses! I am still keeping the options for landscape/horizontal mode (which also now inverts the button controls!) Speaking of button controls, the top power button is now the action key! This is how you select a book, open the quick menu or select a chapter. It doubles as the power button when you hold it! This makes landscape reading MUCH more effective, which is a big goal of this firmware! I went into the SD card and realized a few things. First, the epub books on the device are completely unnecessary. They are never really read from because the converted book binaries really never needed to reference them again. So now the binary book format includes everything that the epub had, and you dont need to have epubs on the device anymore - just run a script with a bunch of books and it’ll be put on the sd card automatically! This saves a lot of space and is better organized because books are now stored in folders with their images and data instead of an invisible cache folder. Speaking of the cache folder, I made numerous improvements starting from a dramatic settings simplification going from 5 extra files to none! It’s just book positions, the persisted book settings (just the font size, orientation, and last read book!) and that’s it. It is super nice and simple now and I deduped a lot of settings that should’ve been in RAM. I got rid of the book convert thing on the device, because now it runs on your computer! It realllly doesn’t make any sense to run computationally expensive operations on an ESP32… this is a much better way. In terms of the UI, I got rid of the glyphs, icons, labels, hyperlinks, progress bars and dropped any of the other fonts on the device like Literata and Inter. There were also a lot of bug fixes, like making the screen actually show the book cover on sleep and opening the proper book on unsleep, at the right position. And a big one: I got rid of QEMU because I didnt really use it or need it, and it kinda bloated the codebase. That’s pretty much it!!!"}, {"post_id": 48440, "ts": "2026-08-16T19:45:15Z", "hours": 3.425, "text": "Improving the device’s performance, battery life and storage optimization There was a lot of room for improvement on microreader’s infrastructure, and I have spent some considerable effort on making sure everything is fully optimized before I start working on redoing some of the UI. For starters, I have removed the settings menu entirely and moved it to a text file, so everything is hardcoded at build time! This reduces the closure size and makes the system faster since it’s no longer reading from flash. You can see what the UI looks like now without the settings menu in the attached image. There was a lot of trial and error of trying different values to see what’d work with things like SD card speed and QIO bootloader options. I found that when using the most optimal options, the device would refuse to boot or read from the SD card, so unfortunately the default bootloader options and 20mhz speed is the fastest this device can handle 😭 (tried 40 and even 26.67mhz) I also tried using light sleeping but found that it doesn’t work either. It would’ve worked great for this device but due to some weird issues with the ESP32, when I unplug the device and run it off of battery the buttons would just stop working. I have improved the SD card management so that there’s no backups and now there’s less overhead when writing book save data. By far the most amount of time was spent on the config where I removed a lot of things from the closure and disabled unnecessary checks. For example, the bootloader ran a validation on the image on every boot, so disabling that made boots faster by about 100ms with zero drawbacks! I also stopped logging and kept with the repository cleanup so that now the flash went from 1.663mb/.123 to 1.573mb/.121mb, which is pretty small but still nice for making this device smaller and a lil bit faster. So yeah, the project is in a VERY nice and optimized state right now. I am going to improve on its usability and UI!"}, {"post_id": 47189, "ts": "2026-08-14T22:28:02Z", "hours": 0.7447, "text": "Forked nous and rebranded it to Wintergreen! I laid out the project and everything in the github readme. I’m going to be optimizing this project for usability and performance over everything, unlike a lot of other custom firmwares for this device. I have gotten the builds working and there is no remnants of the original firmware that I forked from (nous or microreader) left other than the file format extensions. I will be working on those next! Very excited to start working on this!"}]...
|
Title: Wintergreen: highly focused E-ink reading f Title: Wintergreen: highly focused E-ink reading firmware! by @alec | Stardance
Devlogs:
Forked nous and rebranded it to Wintergreen! I laid out the project and everything in the github readme. I’m going to be optimizing this project for usability and performance over everything, unlike a lot of other custom firmwares for this device. I have gotten the builds working and there is no remnants of the original firmware that I forked from (nous or microreader) left other than the file format extensions. I will be working on those next! Very excited to start working on this!
Improving the device’s performance, battery life and storage optimization There was a lot of room for improvement on microreader’s infrastructure, and I have spent some considerable effort on making sure everything is fully optimized before I start working on redoing some of the UI. For starters, I have removed the settings menu entirely and moved it to a text file, so everything is hardcoded at build time! This reduces the closure size and makes the system faster since it’s no longer reading from flash. You can see what the UI looks like now without the settings menu in the attached image. There was a lot of trial and error of trying different values to see what’d work with things like SD card speed and QIO bootloader options. I found that when using the most optimal options, the device would refuse to boot or read from the SD card, so unfortunately the default bootloader options and 20mhz speed is the fastest this device can handle 😭 (tried 40 and even 26.67mhz) I also tried using light sleeping but found that it doesn’t work either. It would’ve worked great for this device but due to some weird issues with the ESP32, when I unplug the device and run it off of battery the buttons would just stop working. I have improved the SD card management so that there’s no backups and now there’s less overhead when writing book save data. By far the most amount of time was spent on the config where I removed a lot of things from the closure and disabled unnecessary checks. For example, the bootloader ran a validation on the image on every boot, so disabling that made boots faster by about 100ms with zero drawbacks! I also stopped logging and kept with the repository cleanup so that now the flash went from 1.663mb/.123 to 1.573mb/.121mb, which is pretty small but still nice for making this device smaller and a lil bit faster. So yeah, the project is in a VERY nice and optimized state right now. I am going to improve on its usability and UI!
Made a LOT of progress on the device’s usability! First and foremost, as you can see from the images, I updated all the fonts. While yes, I would agree that Iosevka is not a great e-ink reading font, it makes for a good UI monospaced font. I also updated the font to Atkinson Hyperlegible which looks absolutely amazing. Just take a look at it yourself! I removed font sideloading so this is the forced font for all epubs. Learned a bit about font kerning and it looks pretty well-spaced now. Secondly, the UI is a bit outdated but I got rid of even more book-related settings. Now it shows you the chapters in the book menu without any additional button presses! I am still keeping the options for landscape/horizontal mode (which also now inverts the button controls!) Speaking of button controls, the top power button is now the action key! This is how you select a book, open the quick menu or select a chapter. It doubles as the power button when you hold it! This makes landscape reading MUCH more effective, which is a big goal of this firmware! I went into the SD card and realized a few things. First, the epub books on the device are completely unnecessary. They are never really read from because the converted book binaries really never needed to reference them again. So now the binary book format includes everything that the epub had, and you dont need to have epubs on the device anymore - just run a script with a bunch of books and it’ll be put on the sd card automatically! This saves a lot of space and is better organized because books are now stored in folders with their images and data instead of an invisible cache folder. Speaking of the cache folder, I made numerous improvements starting from a dramatic settings simplification going from 5 extra files to none! It’s just book positions, the persisted book settings (just the font size, orientation, and last read book!) and that’s it. It is super nice and simple now and I deduped a lot of settings that should’ve been in RAM. I got rid of the book convert thing on the device, because now it runs on your computer! It realllly doesn’t make any sense to run computationally expensive operations on an ESP32… this is a much better way. In terms of the UI, I got rid of the glyphs, icons, labels, hyperlinks, progress bars and dropped any of the other fonts on the device like Literata and Inter. There were also a lot of bug fixes, like making the screen actually show the book cover on sleep and opening the proper book on unsleep, at the right position. And a big one: I got rid of QEMU because I didnt really use it or need it, and it kinda bloated the codebase. That’s pretty much it!!!
Finally reworked the UI! After changing up the system font, I finally went through ALL of the pages, reorganized them and made it usable. For starters, the home screen has a carousel now of the three most recently read books! I think it looks really nice. I also reworked how the buttons work, so now when you press the back button on the homepage, it’ll show you a list of all your books! This is very easily scrollable, which is perfect for a larger library. I also got rid of any unnecessary text everywhere, like the Wintergreen branding so everything just feels more clean. And it shows your reading percentage now! I made the reader options experience SO much more intuitive. The two reader options have seperators and I renamed the menu to better match its purpose within the code. The chapters are easier to scroll now because we have adjustable button hold speeds, and the percentage of the book and chapter read has been moved into the book name and chapter name respectively! So the buttons got me all confused, since it feels swapped sometimes. I made the side buttons intentionally swap top/botttom when you’re not in landscape, so things feel a bit more intuitive whether you’re in Portrait mode or not! And of course the obligatory cleanup. Renamed a bunch of stuff and made the repo simpler with a massive reorganization effort, from /lib/wintergreen to just /wintergreen!
HUGE usability improvements, optimizations, and the first new features of this firmware!! So I know its been a few days since I haven’t posted an update here, but I have been reallly busy! I’ve got a lot of news, so let’s start from the top!! Really cool thing happened today and yesterday - I brought my XTEINK X4 with me out in public! So we went to the post office (sat in line for a few hours) and read 35% of Alice in Wonderland using this custom firmware! It felt amazing, I was productive (rather than doomscrolling on my phone) and I got immersed in the story. So yeah, this firmware works. Was not distracted, and it was INSANELY efficent because my battery is still at 100% and I haven’t charged it since Friday (that’s two full days of reading and its still at full battery! Gotta love optimizing firmware and e-ink displays!!) Now, this was mostly due to the major new optimizations that I have spent countless hours on. I experimented with turning off the display power rails after 5 seconds, but this was a realllly bad idea because I didnt test it properly and I ended up trying to read in bed with text overlapping each other because the power rails were actually needed to properly remove the old text during a page turn!! By far the most helpful optimizations were the preloading and caching everywhere. This allowed for partial refreshes throughout everywhere on the display, which means less energy is spent on a full refresh but instead on a smaller piece of the screen. This meant that I could both improve the performance and reduce latency of the application AND reduce power usage, which was a massive win!! I did a quick speed test comparison between my brother’s XTEINK running CrossPoint and my firmware and there is without a doubt that my firmware is faster now with these optimizations. Eyeballing it, it seems like i am getting 200% faster page turns and menu switching. As if I couldn’t optimize more, I managed a few more major improvements. I made compiled books more sensible, since they no longer require the epub on the device and embed everything in the highly optimized binary file format. I made the file format even faster with image handling, and it is about as small file-size as it gets, so you can drop an 8GB or 4GB card in the device and get more books on it. I personally think I wouldnt ever hit 2GB of books on the device! Structurally, the position files are no longer stored in a special directory and instead they are stored in the book folder, so you dont need to know its ID! And the actual data/settings are stored in a single file in the home now, so i just got rid of the .wintergreen/ folder, which is a nice little cleanup. This is as minimal as it gets now, SD card wise. This is better for the SD card health as well!! As for the reading experience, there is SO much new and improved stuff. You know the sleep cover that appears when you turn the device off? It had annoying bars on the sides or the top, which was really distracting. I experimented with a background which filled to the same color as the book background, yet it was ugly and didnt work with books which had a different color on the sides. So heres what I did differently which actually looks better than it sounds: i made the book stretch to fill! It actually makes the text look BETTER, everything looks nicer and we aren’t wasting any screen space with empty bars. Just look at the images below!! It looks amazing. And in the quick menu, I made it so you can select the actual book to continue reading it again, without needing to move your thumb to the back button. I use this feature so often since its conveniently placed at the top near the settings, so you can adjust a setting, go up and then start reading again. (I hit the 4000 character limit, posting a second devlog to finish this lol)
(was trying to finish the last devlog but i needed 15 minutes of logging time lol) In the settings menu, check out the screenshot below and you’ll see a new Bluetooth clicker option!! So this one is actually insanely cool - when I did a talk at Linuxfest Northwest at Bellingham Tech in april 2026, I bought this small and simple bluetooth clicker with two buttons. And it worked great, but what if I can also use it for reading? The device has bluetooth, so I made a nice option for hardcoding a MAC address so it can connect to my clicker in just one press. Then, with the landscape option, I can leave the device on the ceiling or on a spot away (magnetically attached on to something) from my eyes and just use the page turning buttons. UNFORTUNATELY, I did not get this fully finished right now so it has errors and doesn’t connect reliably, and crashes the firmware so this is not finished as of now!!! :( To make matters worse, I tried to get rid of the serial communication since we didn’t really need it and I had never used it, so it was kinda just bloating up the codebase and now I can’t really debug this very well. I added the sync button in a convenient and sensible spot, but it is not functional yet. I hope for my next devlog to be my last, since I will finish the features here and make a nice video about it! Anyways, there was a ton of other stuff that I did as well but i kinda forgot, so maybe I’ll cover them in the next journal! And again, sorry for not devlogging in a bit! — end conituation of last devlog — ALRIGHT so i know i went over the 10 hour devlog thing and i did so much here that i dont know if i can fit it all in one devlog, but pretty much the firmware is done. I managed to get bluetooth working perfectly! It has zero memory leaks now (this took me so many hours 😭) AND it supports queued page turns! And now you can hold the previous page button to go back, and hold the next page to open the quickmenu/select something! And connections are faster & consistent now. The device struggled with a lot of crashes, but I’m happy to say that I’ve fixed it completely with another book format refactor!! So we can keep page caches for speedy page turns AND we get bluetooth support. Lots of safety checks to ensure memory safety! Sync got a major rework, so now it works to disable your bluetooth device when you run a sync to preserve memory! And it disables the bluetooth option so you can’t glitch the system out. Now it’s only used for getting/removing books, and positional sync has been removed since it was kinda jank. Also fixed a bunch of stuff with the homelab so its more reliable now! Lots of QoL stuff, like a low battery bar when you’re low on battery while reading (so it’s not distracting), better label names, removing unnecessary text like CHAPTER from the chapters selection, and faster button holding! More things like faster wakeups, refusing to boot when there’s no more SD card, and a massive cleanup because I had a really long debug session to fix the crashes with bluetooth. And I made the screen full-size vertically, for some reason we were missing some rows on the top which are now filled properly! And the thing I’m most proud of: theres a new splash screen that I made myself!! Spent several hours perfecting it and I’m very proud of how it came out. Check it out!!! Anyways, gonna make a vid and submit this project since I’m done!!
And… it’s done!! Sorry for a bit of the delay!! I finished writing out the new release and make a video demo of what the firmware entirely looks like now. I also realized that I forgot to send an image of the Wintergreen logo that I had made a few days back… I did it all with my iPad & Apple Pencil, unlike the firmware which I forked (nous) which just… made their image with AI? It looked so dang ugly… had to humanize it (as in MAKING IT MYSELF..) and I think it looks great (not to repeat from the last devlog lol, family thinks it looks cool as well and I am very proud of it) Anyways, I had to figure out how to compile a binary for you guys to flash without needing Platformio to build. Took me a bit to get it sorted out. Unrelated but reason why I hadn’t shipped yet is because I was trying to take a ton of sick pictures out in the wild, but it didn’t go so well. You can see some of the pics I liked in the github gallery and im putting another pic here (that you cant find anywhere else) just for fun! Anyways, gonna go ahead and ship this now (for real this time now tho lol)
Ships:
Wintergreen is a custom firmware for the Xteink X4 e-ink device whose ideology refocuses back to what the device was originally made for: READING. So many custom firmwares have unnecessary features, bloat and a clunky UI which makes it slow and distracting from the original intent of this device. Wintergreen is hyperfast, optimized (for page refreshes, battery life, and especially page turns) and actually thinks about the buttons you need to press to get where you need to go. It only builds and includes what you need, and extra features like wifi syncing and bluetooth page turning support is optional (yet first-class, unlike almost all other firmwares!) This firmware offers numerous design improvements such as compiling/indexing books off-device (which is a huge QoL advantage), no settings menu (everything gets hardcoded into the binary which means no flash reads!) and ONLY partial ink refreshes used everywhere in the codebase. Every small action and ink change has been very carefully considered to bring the best possible experience to this small ereader and I’m really really excited for you to try it!...
|
1792979657.710921
|
1793066057.710921
|
|
47357
|
Cosmic conqueror by @ayaan17120 | Stardance
|
ayaan17120
|
1
|
44.0
|
615
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T20:29:24Z", "hours": 44.0, "multiplier": 13.86, "payout": 615, "blessing": "neutral", "text": "i made a game called the cosmic conqueror, the adventures of mishi, this game is something i worked and it honestly was reallt tiring, i got stuvk like a million times for small errors and it was really tiring. i love this game but now after doing everything i realised i have put every effort intp and i lovr this despite anything. i made a small error tho, to the space riddle, i didnt change the question so there are two blackhole riddles, but the answer to one is space", "repo": "https://github.com/Jsvuskgxixylsurdoyc/COSMIC-CONQUUEROR", "demo": "https://qaziiiayaan.itch.io/cosmic-conqueror"}]...
|
[{"post_id": 54033, "ts": "202 [{"post_id": 54033, "ts": "2026-08-24T19:46:19Z", "hours": 4.7894, "text": "i finally added all the start pause game over, complete scenes and finallt put all of these guys intop thier respective places and the game is finally complete"}, {"post_id": 53058, "ts": "2026-08-23T13:38:16Z", "hours": 3.9117, "text": "I coded these interactive riddle walls basically, you walk up to a dead end, a UI pops up, and you have to type in the exact right password to a riddle. If you get it right, the wall literally deletes itself and clears the path. I placed four of these riddle gates across the map. Getting the UI to actually work was a nightmare though. but now I finally have actual on-screen popups that yell ‘Right Answer!’ or ‘Wrong Answer!’ in your face and fade out after a couple of seconds. On top of that, I built out the whole Space Key fragment mechanic and completely mapped out the dungeon layout. You start in this bottom tunnel, solve your way through the main gates, and then have to survive branching left and right mazes to hunt down these key fragments. I set it all up so you’ll eventually have to clear a central boss arena and fight off skeleton mage ambushes just to get the pieces. I also spent way too long fixing dumb bugs like my character freezing mid-run when opening a menu, or endlessly jumping against flat walls like an idiot because of broken physics code. But I locked the movement inputs down, and it finally actually plays like a real dungeon crawler. The grind was unreal, but we’re locked in now."}, {"post_id": 52527, "ts": "2026-08-22T18:05:25Z", "hours": 3.2258, "text": "Today, I mapped out the core layout for my game and officially shifted the concept to a sci-fi “space dungeon.” The main loop is now focused on exploring the map, fighting through various enemies, and eventually finding a way to escape back to your home planet. To make the exploration actually matter, I decided to add a collectible space key that the player must find to unlock the final escape shuttle. After some trial and error with the engine’s physics, I successfully got the key fully implemented and working. With the escape puzzle finished, I am ready to move on and start building out the rest of the stuff, like the enemies and boss fights!"}, {"post_id": 51768, "ts": "2026-08-21T16:38:51Z", "hours": 1.6261, "text": "today i jus worked on player animations, added different spells and added drain and limit systems for that, and i also added stamina drain systems"}, {"post_id": 51155, "ts": "2026-08-20T17:29:56Z", "hours": 1.6436, "text": "today i couldnt do much. i jus fixed a lot of bugs. and i also started to work on the abilities of the player and what they can do"}, {"post_id": 50415, "ts": "2026-08-19T16:08:32Z", "hours": 5.0589, "text": "i added the projectile attacks, made them work for anyday. and made sure the attacks are perfect and fixed the bugs and now working on ui, too tired to post a screenshot, sorry guys :)"}, {"post_id": 49721, "ts": "2026-08-18T17:07:48Z", "hours": 2.6131, "text": "today i did a lot of work, i added the attack mechanics and made my player get attacked and attack. its not only animation now it works, now ive to work on the projectiles and health bars and make sure the player dies actually, so this is all very cool"}, {"post_id": 48890, "ts": "2026-08-17T13:37:17Z", "hours": 2.4631, "text": "first i added the skeleton warrior and did everything related to him Then I added the new Skeleton Mage, and oh my god, this guy gave me so many headaches. Whenever I clicked on him, the editor threw this weird float and bool mismatch error. I had to go into the animation tracks and change the update mode to discrete so the engine wouldn’t freak out. And then, after writing all the codes and doing everything, he STILL wasn’t attacking me. I made sure the script was perfect, right? But then I realized I plugged the wires backwards in the Animation Tree… I literally had the move state plugged into the shot port. Fixed that, and he still wasn’t shooting. Why? Because I just forgot to tick the ‘Autostart’ box on his attack timer. Honestly so annoying."}, {"post_id": 48377, "ts": "2026-08-16T18:14:54Z", "hours": 3.67, "text": "Worked on setting up and fixing the boss AI and animation state machine in Godot. Got the base movement working, fixed the attack timer pacing so the boss doesn’t instantly spam ranged attacks from across the map, and successfully resolved the issue where the boss kept playing the running/walking animation in place instead of returning to idle. Decided to temporarily shelf the spin attack feature by commenting out the code to keep things simple for now, and finalized a smooth, working combat loop with proper melee and ranged states."}, {"post_id": 48023, "ts": "2026-08-16T09:38:10Z", "hours": 4.2953, "text": "#devlog so finally i am done with the player mechanics completely, my player now blinks jumps runs walks, sprints, can defend using a sheild, can attack with a sword and can switch to a wand and attack using that. now ill start working on the attack mechanics and the enemies"}, {"post_id": 47392, "ts": "2026-08-15T09:42:46Z", "hours": 3.8317, "text": "right now i first addeed the sprint and jump to the capsule and then i finally added the chharacter and his animations and made those animations work, jump run and idle"}, {"post_id": 47024, "ts": "2026-08-14T16:50:48Z", "hours": 3.6786, "text": "earlier i messed up and put everything in one scene, i had to redo everything and fixed it, plus i added spring and did everything related to the camera. now im workingg on the jump"}, {"post_id": 46809, "ts": "2026-08-14T10:05:00Z", "hours": 3.5264, "text": "i am working on survival game which is inspired from the legend of zelda in which you kill the final boss of another planet and escape on your shuttle. right now i have made the base and the character, i have coded the character and the camera controls, gave the camera basic code to follow the character and basic rotational mechanics"}]...
|
Title: Cosmic conqueror by @ayaan17120 | Stardance Title: Cosmic conqueror by @ayaan17120 | Stardance
Devlogs:
i am working on survival game which is inspired from the legend of zelda in which you kill the final boss of another planet and escape on your shuttle. right now i have made the base and the character, i have coded the character and the camera controls, gave the camera basic code to follow the character and basic rotational mechanics
earlier i messed up and put everything in one scene, i had to redo everything and fixed it, plus i added spring and did everything related to the camera. now im workingg on the jump
right now i first addeed the sprint and jump to the capsule and then i finally added the chharacter and his animations and made those animations work, jump run and idle
#devlog so finally i am done with the player mechanics completely, my player now blinks jumps runs walks, sprints, can defend using a sheild, can attack with a sword and can switch to a wand and attack using that. now ill start working on the attack mechanics and the enemies
Worked on setting up and fixing the boss AI and animation state machine in Godot. Got the base movement working, fixed the attack timer pacing so the boss doesn’t instantly spam ranged attacks from across the map, and successfully resolved the issue where the boss kept playing the running/walking animation in place instead of returning to idle. Decided to temporarily shelf the spin attack feature by commenting out the code to keep things simple for now, and finalized a smooth, working combat loop with proper melee and ranged states.
first i added the skeleton warrior and did everything related to him Then I added the new Skeleton Mage, and oh my god, this guy gave me so many headaches. Whenever I clicked on him, the editor threw this weird float and bool mismatch error. I had to go into the animation tracks and change the update mode to discrete so the engine wouldn’t freak out. And then, after writing all the codes and doing everything, he STILL wasn’t attacking me. I made sure the script was perfect, right? But then I realized I plugged the wires backwards in the Animation Tree… I literally had the move state plugged into the shot port. Fixed that, and he still wasn’t shooting. Why? Because I just forgot to tick the ‘Autostart’ box on his attack timer. Honestly so annoying.
today i did a lot of work, i added the attack mechanics and made my player get attacked and attack. its not only animation now it works, now ive to work on the projectiles and health bars and make sure the player dies actually, so this is all very cool
i added the projectile attacks, made them work for anyday. and made sure the attacks are perfect and fixed the bugs and now working on ui, too tired to post a screenshot, sorry guys :)
today i couldnt do much. i jus fixed a lot of bugs. and i also started to work on the abilities of the player and what they can do
today i jus worked on player animations, added different spells and added drain and limit systems for that, and i also added stamina drain systems
Today, I mapped out the core layout for my game and officially shifted the concept to a sci-fi “space dungeon.” The main loop is now focused on exploring the map, fighting through various enemies, and eventually finding a way to escape back to your home planet. To make the exploration actually matter, I decided to add a collectible space key that the player must find to unlock the final escape shuttle. After some trial and error with the engine’s physics, I successfully got the key fully implemented and working. With the escape puzzle finished, I am ready to move on and start building out the rest of the stuff, like the enemies and boss fights!
I coded these interactive riddle walls basically, you walk up to a dead end, a UI pops up, and you have to type in the exact right password to a riddle. If you get it right, the wall literally deletes itself and clears the path. I placed four of these riddle gates across the map. Getting the UI to actually work was a nightmare though. but now I finally have actual on-screen popups that yell ‘Right Answer!’ or ‘Wrong Answer!’ in your face and fade out after a couple of seconds. On top of that, I built out the whole Space Key fragment mechanic and completely mapped out the dungeon layout. You start in this bottom tunnel, solve your way through the main gates, and then have to survive branching left and right mazes to hunt down these key fragments. I set it all up so you’ll eventually have to clear a central boss arena and fight off skeleton mage ambushes just to get the pieces. I also spent way too long fixing dumb bugs like my character freezing mid-run when opening a menu, or endlessly jumping against flat walls like an idiot because of broken physics code. But I locked the movement inputs down, and it finally actually plays like a real dungeon crawler. The grind was unreal, but we’re locked in now.
i finally added all the start pause game over, complete scenes and finallt put all of these guys intop thier respective places and the game is finally complete
Ships:
i made a game called the cosmic conqueror, the adventures of mishi, this game is something i worked and it honestly was reallt tiring, i got stuvk like a million times for small errors and it was really tiring. i love this game but now after doing everything i realised i have put every effort intp and i lovr this despite anything. i made a small error tho, to the space riddle, i didnt change the question so there are two blackhole riddles, but the answer to one is space...
|
1792997562.5214522
|
1793083962.5214522
|
|
5999
|
Tungsten by @DrewRat | Stardance
|
DrewRat
|
1
|
34.0
|
613
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-05T19:35:33Z", "hours": 34.0, "multiplier": 17.84, "payout": 613, "blessing": "neutral", "text": "Tungsten is a simple, self-hosted WYSIWYG Markdown editor. It serves as an open-source alternative to Obsidian. It’s got many features, including highlighted code blocks, KaTeX editing, and much more! To try the demo, open the website and click “Try the Demo”!", "repo": "https://github.com/MrDiamondDog/tungsten", "demo": "https://tungsten-demo.drewrat.dev"}]...
|
[{"post_id": 23038, "ts": "202 [{"post_id": 23038, "ts": "2026-07-05T19:28:28Z", "hours": 1.1903, "text": "Shipping time!!! VOTERS: OPEN THE WEBSITE AND CLICK “Try the Demo”!!!!! Did some quick bug fixes with the demo and we’re ready for launch! Specifically, making new files was completely broken for some reason, and I added the stardance logo to the README. Additionally, the readme is also fetched from github so I can update it on the fly if necessary. Error handling This was last on the list (for some reason), but all network errors are handled with a toast at the top of the screen, which makes it much clearer for everyone what went wrong."}, {"post_id": 22535, "ts": "2026-07-05T01:52:12Z", "hours": 2.1239, "text": "Themes, more bugs squashed! All the themes are based on the Catppuccin color palettes because they are wonderful, and allowed me to focus on other things instead of making a color palette. And it looks phenomenal! The theme switcher is painfully simple. React’s Context API is so underrated. It saves your theme in localstorage and loads it every time you open the page! File name restrictions This one was a little tricky to get correct. I had to go through a bunch of the old logic in the sidebar to ensure that no file names collided, and if they did, make sure that state doesn’t get pushed. Additionally, I had to make creating files look at the rest of the files in the folder and append a 1, 2, 3, etc. to “New File” so the names didn’t collide as soon as you created them. I was going to put these same restrictions on the server and realized that would take forever with little benefit, as if you break the client to send requests like that, then you’re going to break it. It doesn’t even break that badly, the files work perfectly fine, it’s really just links. After all, these are self-hosted instances, so if you forge some stupid requests I could not care less. Link handling Speaking of links, cross page links are functional again! I procrastinated this one too much but I just needed to make a new helper function, nodeFromPath . It takes an array of strings, being the path to a node, and give you the node (or undefined) that path leads to. I just love working with trees so much, recursive functions are my favorite"}, {"post_id": 21923, "ts": "2026-07-04T03:24:40Z", "hours": 4.4356, "text": "Self hosting, GitHub actions, SO MANY BUGS!!! Yay!!! Big updates!!! Almost ready to ship!!! (optimistically) Self hosting This is a big one. It also took me forever. But self hosting is fully functional through Docker! Not displayed is the 5 hours it took me to actually learn Docker… I have used it before but I haven’t actually learned what I was doing. Containers, images, volumes, compose, blah blag. But, it’s worth it because self-hosting is now just one or two commands away. A lot of the hours listed on this devlog is writing + refining the SELFHOST.md file! It’s a detailed document that describes Tungsten’s stack and how to host it on your hardware. Soon I hope to bring this to an actual website like the landing page for Tungsten. GitHub actions This is slightly less interesting, but gh actions are set up! It’ll test building the full project, then push a docker image, and do a quick codeql check. I copied most of this from Filatrack, I’ll be honest, but what can I say? It works great! Bugs I tried uploading an image while I was testing stuff and realized that Next.JS limits the body size of server actions quite a lot. Luckily there was an option to change it, and now you can change it to what you want! Also, the state of which files were unsaved got messed up somehow. When you clicked between an unsaved tab and a saved tab, the saved one would become unsaved! Quick fix but was pretty funny. What’s Next Well, my todo list is only getting fuller as the days go on. I pretty much add one or two things for every one I cross off. But all I’ve got left is to fix cross-page links (I broke them last devlog), file name restrictions (like a real filesystem), an options page, and proper error handling. After that (and whatever else I add), we’ll ship!"}, {"post_id": 20345, "ts": "2026-07-01T22:25:34Z", "hours": 3.1394, "text": "Landing page, demo mode (for you!) MANY bug fixes! The landing page is pretty simple. I’m not an artist by any means, so this will do. It’s mostly for you voters/reviewers to get an overview and try the demo! The demo is super simple. It’s a simple env flag that will change the landing page to what you see now. The demo button simply tries to log you in to the user “ [email protected] ” with password “demodemo”. This is the only user that will exist in the database, so it will just log in to that. All the server actions have their behavior changed in the demo to not make any changes to the database as well, so whatever you do isn’t saved. Bug fixes As you can see in the second image, I fixed many things that were bugging me. Namely, the URL bar. That’s how files would be selected, but it caused some really stupid state issues that caused a multitude of bugs and like 2 hours of headaches. That’s gone, and so is autosaving. Everything is now more performant as well!"}, {"post_id": 19680, "ts": "2026-07-01T02:15:07Z", "hours": 1.4117, "text": "Super not interesting update!! The editor now has a raw and read only view! The raw view lets you edit the raw markdown, and read only does exactly what you think it does. I ended up rewriting the logic for saving/loading in the editor, because it got extremely messy and was breaking down with all the features I’ve been adding. You won’t notice anything different, but it’s much more reliable!"}, {"post_id": 18627, "ts": "2026-06-29T20:28:21Z", "hours": 0.8939, "text": "Bug fixes, tables and a logo! We’re getting close to release. I’ve got a couple features I’d like to add and we’ll get going. Firstly, the logo! I made it myself of a reference image of actual tungsten, cause it’s a cool element. I based the style around the Obsidian logo, with distinct sections each with their own gradients to simulate lighting. My take on this uses all straight lines, as that’s part of the design of the UI. This is my first time really making SVG art, I think it looks pretty decent! Next, tables! and an upgraded menu bar! Surprisingly, tables were one of the easiest plugins to add. All my CSS work from like a week ago carried over here and it looks great. There might be some changes I do later on however. And a bunch of unrelated bug fixes that had to be done, as always."}, {"post_id": 18546, "ts": "2026-06-29T18:45:39Z", "hours": 2.6778, "text": "Cross file links! Links to different files work great! There’s a small dialog to edit the link and whatnot and it’ll take you to the specified page!! As much as I want to use wikilinks for this, that would require a custom plugin I don’t know how to make (I don’t even know if it’s really possible with MDXEditor). I’m gonna leave it at this for now, as the create link dialog works great for making them. I had to make some pretty major changes to how selecting files works, however. If you look at the URL bar, it now shows the selected file in it. That is now what determines the selected file, which I’ve been meaning to do for a while and makes links infinitely easier."}, {"post_id": 17984, "ts": "2026-06-28T22:56:11Z", "hours": 2.2972, "text": "Big updates today!!! Math and images!! Math was probably the hardest thing to add due to the lack of extensibility of the MDXEditor component I’m using. The plugin system is overly complex and makes zero sense since there is hardly any documentation on how to actually use it. Luckily, there is a jsxPlugin that lets the user make custom jsx components of your choosing. The other hard part was finding a suitable editor for the job. After much googling, I found MathLive, which is a currently unmaintained editor that does exactly what I need it to. Internally it uses KaTeX, which is what I was looking for. Now the problem arises: combining these libraries. This wasn’t easy; it took a lot of trial and error, as the documentation is limited. But the final result is incredibly worth it. A couple bugs still exist; notably, pressing the left or right arrow into the math editor does not focus your cursor in it; and similarly for moving out of it. I have no clue how to fix these, MDXEditor is not helpful in the slightest. A minor bug I can fix however is the autosaver not saving if only the MathEditor has changed. Images This one was so much easier! There’s a built in plugin for it. It even handles image resizing! I just have to handle uploading images to the server. I decided to make a table in the database that simply stores filenames and their associated users, just so you can’t access other user’s images. When you upload a file, it gives the editor a link to api/image/random-uuid.png . The api route checks the user id against the database and gives you the image in response. Possibly the dumbest thing ever is the fact that the image plugin limits the minimum size of the image at 100x100px. I don’t like this however cause I want to be able to put emojis in my markdown files, with possible support for later uploading custom emojis and using them in the editor. There is no customizing this value, it is hardcoded in the library. Luckily, pnpm natively supports patching node modules, and that’s exactly what I did. The minimum size is now 10x10!"}, {"post_id": 15955, "ts": "2026-06-25T22:24:57Z", "hours": 2.1378, "text": "Creating, renaming, and deleting files/folders! This one took a hot minute but it works really great! It’s so much better than using a modal to do everything! I didn’t actually know this but the tree component has support for creating files like this out of the box, it’s just not listed in any documentation so it took me a bit to find. It actually starts by creating a file named “New File”, then just immediately renaming it, which is a much cleaner solution than what I was planning Renaming is painfully simple, as it handles a bunch of the work too but it’s actually a completely different component it changes to when you start renaming, which ended up being so much easier to work with. I ran into one of the stupidest bugs ever while implementing renaming. The best way to describe it is “When renaming a file, if it is the open tab, whenever it autosaves it will reset the rename input cause it rerenders.” But basically, the autosaver would save the selected file, causing everything that uses useEditor to rerender, including the sidebar, which makes it re-render the input component for renaming, which resets the text to it’s initialName . It wasn’t hard to fix, I just made the autosaver not save if the content hasn’t changed, which I’ve been meaning to do anyway. For now, that is most of the hard features done the last hurdle that I’m not excited to implement is links between pages. I have no clue how that will work, especially with the component I’m using. But that’s next!"}, {"post_id": 14021, "ts": "2026-06-23T00:20:01Z", "hours": 2.2783, "text": "Code blocks!!! Now without major lag!! A very annoying bug with a solution I can’t believe I missed. Basically, to get large code blocks to work, MDXEditor gives you a codeMirrorPlugin . This plugin lets you pass a list of languages to have in the selector and to have syntax highlighting support for (codemirror provides a very large data set of them, luckily). The problem was, this list was very large and caused lag when typing. I ended up asking the discussions page and (after an unhelpful AI response), we figured out my onChange handler setting a content state that the markdown editor used was causing the whole thing to re-render every time you typed, and with the large language array, causing a lot of lag. You’ll notice in the video the language selector in the toolbar. So it was a very, very simple fix. I even went through and implemented auto-saving instead (every 5 seconds). It even stops you from leaving if it hasn’t saved yet! I also fixed a whole slew of scrolling issues with long markdown files. It was the stupidest thing ever and I’m not proud of the fix, but it works now."}, {"post_id": 12956, "ts": "2026-06-21T06:31:52Z", "hours": 1.0881, "text": "Little more work before the end of the day! (well, it’s past midnight so I guess not) Large code blocks work and are horribly laggy, will be fixing very soon. They are a pain to style properly since MDXEditor is heavily opinionated and makes everything hard to style. You can now drag and drop tabs! I only had to install a second library for DnD to make it work! (Drag and drop is the worst thing. Ever.) I love making my bundle size 10% larger with bloated libraries"}, {"post_id": 12901, "ts": "2026-06-21T04:02:48Z", "hours": 3.9036, "text": "The sidebar is fully functional!! You can drag and drop all your files and folders around, nest them as much as you want, and it will retain all of this information in the database. It only took a database rework and many hours of my life Let’s talk about it… So. The database was originally structured with file and folder tables. Both of them had parentId fields and folders had children . Unfortunately this complicated the code more when I tried implementing this as I had to get all the files and folders and combine them into one array. I looked up the proper way to do this because I clearly was not doing it correctly, and switched to just one table, nodes. This simplified just about everything, and this made me split off the file contents as another table as well. I was meaning to do that anyway just to save on memory, as otherwise all the content of every file would be in memory all the time. Now this node table has all the same fields as before. How do I render this tree? I looked around for good libraries (there’s almost none), and found react-arborist . Looked great, had alright documentation. I started implementing it, and realized I needed to implement the control functions for moving the elements. That’s easy, I said. It wasn’t After like an hour it still was just not working. It was really close but was being weird. I looked up the proper way to do it with this library and apparently there’s a class that has a move function that does all the work for you. And yep. It works. For some reason it turned folders back into files but ended up being an easy fix. So that was a mess but here we are. It works flawlessly. Now I’ve got to implement context menus in this mess, including creating files in folders, etc."}, {"post_id": 12670, "ts": "2026-06-20T18:14:56Z", "hours": 1.2053, "text": "You can now save files! The dot indicator works similarly to basically every IDE ever and has surprisingly complicated logic with the close button as well. The Markdown editor I’m using is kinda a pain, but a lot better than making one from scratch. I had to implement the key listener on the div container for it. Soon I’ll implement the key listener on the whole page with a special handler that components can listen to. The only reason I even implemented the save system is to make it easier on the database. Without saving, it would write to the database every key press. I like this style better anyway, I think it’s pretty cool that it feels like an IDE!"}, {"post_id": 10195, "ts": "2026-06-16T20:09:06Z", "hours": 2.8036, "text": "Made the sidebar, tabs, and creating files work! You can open tabs for each file you’re working on and see the content of them in the editor. I actually went to the react documentation to learn some best practices… as I wanted to avoid passing a million props down through the component tree and passing a bunch of callbacks back up. This is called “prop drilling” and it’s the worst thing ever. I learned how to use React’s context system to “teleport” the props I need to the part of the tree that needs them. As you can see, it works flawlessly! Most of the components you see don’t even have props, which makes it so much easier to work with."}, {"post_id": 9069, "ts": "2026-06-15T04:30:34Z", "hours": 2.8292, "text": "Log in page and basic editor UI! I used Auth.JS for the credentials login. I actually hate that framework and could do it myself but I’m lazy. It probably took longer to set it up than to figure out how JWTs work. The editor is a WYSIWYG markdown editor called MDXEditor. It’s a struggle to work with cause they use their own stupid styling with no real way to style it other than overriding CSS that I can tell. Next up is getting pages working in the database!"}]...
|
Title: Tungsten by @DrewRat | Stardance
Devlogs:
Title: Tungsten by @DrewRat | Stardance
Devlogs:
Log in page and basic editor UI! I used Auth.JS for the credentials login. I actually hate that framework and could do it myself but I’m lazy. It probably took longer to set it up than to figure out how JWTs work. The editor is a WYSIWYG markdown editor called MDXEditor. It’s a struggle to work with cause they use their own stupid styling with no real way to style it other than overriding CSS that I can tell. Next up is getting pages working in the database!
Made the sidebar, tabs, and creating files work! You can open tabs for each file you’re working on and see the content of them in the editor. I actually went to the react documentation to learn some best practices… as I wanted to avoid passing a million props down through the component tree and passing a bunch of callbacks back up. This is called “prop drilling” and it’s the worst thing ever. I learned how to use React’s context system to “teleport” the props I need to the part of the tree that needs them. As you can see, it works flawlessly! Most of the components you see don’t even have props, which makes it so much easier to work with.
You can now save files! The dot indicator works similarly to basically every IDE ever and has surprisingly complicated logic with the close button as well. The Markdown editor I’m using is kinda a pain, but a lot better than making one from scratch. I had to implement the key listener on the div container for it. Soon I’ll implement the key listener on the whole page with a special handler that components can listen to. The only reason I even implemented the save system is to make it easier on the database. Without saving, it would write to the database every key press. I like this style better anyway, I think it’s pretty cool that it feels like an IDE!
The sidebar is fully functional!! You can drag and drop all your files and folders around, nest them as much as you want, and it will retain all of this information in the database. It only took a database rework and many hours of my life Let’s talk about it… So. The database was originally structured with file and folder tables. Both of them had parentId fields and folders had children . Unfortunately this complicated the code more when I tried implementing this as I had to get all the files and folders and combine them into one array. I looked up the proper way to do this because I clearly was not doing it correctly, and switched to just one table, nodes. This simplified just about everything, and this made me split off the file contents as another table as well. I was meaning to do that anyway just to save on memory, as otherwise all the content of every file would be in memory all the time. Now this node table has all the same fields as before. How do I render this tree? I looked around for good libraries (there’s almost none), and found react-arborist . Looked great, had alright documentation. I started implementing it, and realized I needed to implement the control functions for moving the elements. That’s easy, I said. It wasn’t After like an hour it still was just not working. It was really close but was being weird. I looked up the proper way to do it with this library and apparently there’s a class that has a move function that does all the work for you. And yep. It works. For some reason it turned folders back into files but ended up being an easy fix. So that was a mess but here we are. It works flawlessly. Now I’ve got to implement context menus in this mess, including creating files in folders, etc.
Little more work before the end of the day! (well, it’s past midnight so I guess not) Large code blocks work and are horribly laggy, will be fixing very soon. They are a pain to style properly since MDXEditor is heavily opinionated and makes everything hard to style. You can now drag and drop tabs! I only had to install a second library for DnD to make it work! (Drag and drop is the worst thing. Ever.) I love making my bundle size 10% larger with bloated libraries
Code blocks!!! Now without major lag!! A very annoying bug with a solution I can’t believe I missed. Basically, to get large code blocks to work, MDXEditor gives you a codeMirrorPlugin . This plugin lets you pass a list of languages to have in the selector and to have syntax highlighting support for (codemirror provides a very large data set of them, luckily). The problem was, this list was very large and caused lag when typing. I ended up asking the discussions page and (after an unhelpful AI response), we figured out my onChange handler setting a content state that the markdown editor used was causing the whole thing to re-render every time you typed, and with the large language array, causing a lot of lag. You’ll notice in the video the language selector in the toolbar. So it was a very, very simple fix. I even went through and implemented auto-saving instead (every 5 seconds). It even stops you from leaving if it hasn’t saved yet! I also fixed a whole slew of scrolling issues with long markdown files. It was the stupidest thing ever and I’m not proud of the fix, but it works now.
Creating, renaming, and deleting files/folders! This one took a hot minute but it works really great! It’s so much better than using a modal to do everything! I didn’t actually know this but the tree component has support for creating files like this out of the box, it’s just not listed in any documentation so it took me a bit to find. It actually starts by creating a file named “New File”, then just immediately renaming it, which is a much cleaner solution than what I was planning Renaming is painfully simple, as it handles a bunch of the work too but it’s actually a completely different component it changes to when you start renaming, which ended up being so much easier to work with. I ran into one of the stupidest bugs ever while implementing renaming. The best way to describe it is “When renaming a file, if it is the open tab, whenever it autosaves it will reset the rename input cause it rerenders.” But basically, the autosaver would save the selected file, causing everything that uses useEditor to rerender, including the sidebar, which makes it re-render the input component for renaming, which resets the text to it’s initialName . It wasn’t hard to fix, I just made the autosaver not save if the content hasn’t changed, which I’ve been meaning to do anyway. For now, that is most of the hard features done the last hurdle that I’m not excited to implement is links between pages. I have no clue how that will work, especially with the component I’m using. But that’s next!
Big updates today!!! Math and images!! Math was probably the hardest thing to add due to the lack of extensibility of the MDXEditor component I’m using. The plugin system is overly complex and makes zero sense since there is hardly any documentation on how to actually use it. Luckily, there is a jsxPlugin that lets the user make custom jsx components of your choosing. The other hard part was finding a suitable editor for the job. After much googling, I found MathLive, which is a currently unmaintained editor that does exactly what I need it to. Internally it uses KaTeX, which is what I was looking for. Now the problem arises: combining these libraries. This wasn’t easy; it took a lot of trial and error, as the documentation is limited. But the final result is incredibly worth it. A couple bugs still exist; notably, pressing the left or right arrow into the math editor does not focus your cursor in it; and similarly for moving out of it. I have no clue how to fix these, MDXEditor is not helpful in the slightest. A minor bug I can fix however is the autosaver not saving if only the MathEditor has changed. Images This one was so much easier! There’s a built in plugin for it. It even handles image resizing! I just have to handle uploading images to the server. I decided to make a table in the database that simply stores filenames and their associated users, just so you can’t access other user’s images. When you upload a file, it gives the editor a link to api/image/random-uuid.png . The api route checks the user id against the database and gives you the image in response. Possibly the dumbest thing ever is the fact that the image plugin limits the minimum size of the image at 100x100px. I don’t like this however cause I want to be able to put emojis in my markdown files, with possible support for later uploading custom emojis and using them in the editor. There is no customizing this value, it is hardcoded in the library. Luckily, pnpm natively supports patching node modules, and that’s exactly what I did. The minimum size is now 10x10!
Cross file links! Links to different files work great! There’s a small dialog to edit the link and whatnot and it’ll take you to the specified page!! As much as I want to use wikilinks for this, that would require a custom plugin I don’t know how to make (I don’t even know if it’s really possible with MDXEditor). I’m gonna leave it at this for now, as the create link dialog works great for making them. I had to make some pretty major changes to how selecting files works, however. If you look at the URL bar, it now shows the selected file in it. That is now what determines the selected file, which I’ve been meaning to do for a while and makes links infinitely easier.
Bug fixes, tables and a logo! We’re getting close to release. I’ve got a couple features I’d like to add and we’ll get going. Firstly, the logo! I made it myself of a reference image of actual tungsten, cause it’s a cool element. I based the style around the Obsidian logo, with distinct sections each with their own gradients to simulate lighting. My take on this uses all straight lines, as that’s part of the design of the UI. This is my first time really making SVG art, I think it looks pretty decent! Next, tables! and an upgraded menu bar! Surprisingly, tables were one of the easiest plugins to add. All my CSS work from like a week ago carried over here and it looks great. There might be some changes I do later on however. And a bunch of unrelated bug fixes that had to be done, as always.
Super not interesting update!! The editor now has a raw and read only view! The raw view lets you edit the raw markdown, and read only does exactly what you think it does. I ended up rewriting the logic for saving/loading in the editor, because it got extremely messy and was breaking down with all the features I’ve been adding. You won’t notice anything different, but it’s much more reliable!
Landing page, demo mode (for you!) MANY bug fixes! The landing page is pretty simple. I’m not an artist by any means, so this will do. It’s mostly for you voters/reviewers to get an overview and try the demo! The demo is super simple. It’s a simple env flag that will change the landing page to what you see now. The demo button simply tries to log you in to the user “ [email protected] ” with password “demodemo”. This is the only user that will exist in the database, so it will just log in to that. All the server actions have their behavior changed in the demo to not make any changes to the database as well, so whatever you do isn’t saved. Bug fixes As you can see in the second image, I fixed many things that were bugging me. Namely, the URL bar. That’s how files would be selected, but it caused some really stupid state issues that caused a multitude of bugs and like 2 hours of headaches. That’s gone, and so is autosaving. Everything is now more performant as well!
Self hosting, GitHub actions, SO MANY BUGS!!! Yay!!! Big updates!!! Almost ready to ship!!! (optimistically) Self hosting This is a big one. It also took me forever. But self hosting is fully functional through Docker! Not displayed is the 5 hours it took me to actually learn Docker… I have used it before but I haven’t actually learned what I was doing. Containers, images, volumes, compose, blah blag. But, it’s worth it because self-hosting is now just one or two commands away. A lot of the hours listed on this devlog is writing + refining the SELFHOST.md file! It’s a detailed document that describes Tungsten’s stack and how to host it on your hardware. Soon I hope to bring this to an actual website like the landing page for Tungsten. GitHub actions This is slightly less interesting, but gh actions are set up! It’ll test building the full project, then push a docker image, and do a quick codeql check. I copied most of this from Filatrack, I’ll be honest, but what can I say? It works great! Bugs I tried uploading an image while I was testing stuff and realized that Next.JS limits the body size of server actions quite a lot. Luckily there was an option to change it, and now you can change it to what you want! Also, the state of which files were unsaved got messed up somehow. When you clicked between an unsaved tab and a saved tab, the saved one would become unsaved! Quick fix but was pretty funny. What’s Next Well, my todo list is only getting fuller as the days go on. I pretty much add one or two things for every one I cross off. But all I’ve got left is to fix cross-page links (I broke them last devlog), file name restrictions (like a real filesystem), an options page, and proper error handling. After that (and whatever else I add), we’ll ship!
Themes, more bugs squashed! All the themes are based on the Catppuccin color palettes because they are wonderful, and allowed me to focus on other things instead of making a color palette. And it looks phenomenal! The theme switcher is painfully simple. React’s Context API is so underrated. It saves your theme in localstorage and loads it every time you open the page! File name restrictions This one was a little tricky to get correct. I had to go through a bunch of the old logic in the sidebar to ensure that no file names collided, and if they did, make sure that state doesn’t get pushed. Additionally, I had to make creating files look at the rest of the files in the folder and append a 1, 2, 3, etc. to “New File” so the names didn’t collide as soon as you created them. I was going to put these same restrictions on the server and realized that would take forever with little benefit, as if you break the client to send requests like that, then you’re going to break it. It doesn’t even break that badly, the files work perfectly fine, it’s really just links. After all, these are self-hosted instances, so if you forge some stupid requests I could not care less. Link handling Speaking of links, cross page links are functional again! I procrastinated this one too much but I just needed to make a new helper function, nodeFromPath . It takes an array of strings, being the path to a node, and give you the node (or undefined) that path leads to. I just love working with trees so much, recursive functions are my favorite
Shipping time!!! VOTERS: OPEN THE WEBSITE AND CLICK “Try the Demo”!!!!! Did some quick bug fixes with the demo and we’re ready for launch! Specifically, making new files was completely broken for some reason, and I added the stardance logo to the README. Additionally, the readme is also fetched from github so I can update it on the fly if necessary. Error handling This was last on the list (for some reason), but all network errors are handled with a toast at the top of the screen, which makes it much clearer for everyone what went wrong.
Ships:
Tungsten is a simple, self-hosted WYSIWYG Markdown editor. It serves as an open-source alternative to Obsidian. It’s got many features, including highlighted code blocks, KaTeX editing, and much more! To try the demo, open the website and click “Try the Demo”!...
|
1792993890.9644158
|
1793080290.9644158
|
|
4470
|
Edge-AI Home Monitoring System by @Greg_ios | Star Edge-AI Home Monitoring System by @Greg_ios | Stardance...
|
Greg_ios
|
3
|
38.0
|
612
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T08:49:56Z", "hours": 18.0, "multiplier": 17.56, "payout": 308, "blessing": "neutral", "text": "Most smart homes are leased, not owned. Every command you send travels to a cloud you don’t control, owned by a company with interests misaligned to yours. This system proves that meaningful control of your physical space doesn’t require surrendering it to a vendor. Edge-AI Home Monitoring is a locally-governed, vendor-independent home automation platform designed to answer: can a household be sovereign over its own infrastructure?", "repo": "https://github.com/travletothefurureprogramming/Edge-AI-Home-Monitoring-System", "demo": "https://edgeaihomemonitoringsystem.carrd.co/"}, {"ship_num": 2, "ts": "2026-06-30T20:49:56Z", "hours": 11.0, "multiplier": 16.61, "payout": 175, "blessing": "neutral", "text": "Over the past few weeks, Edge-AI Home Monitoring System has evolved from a basic smart home controller into a much more capable home automation platform. New Features Added YOLO-based security monitoring Integrated Telegram bot for remote alerts and device control Added support for Tapo Smart Bulbs Added support for Tapo Smart Plugs Added support for Philips Hue devices Added support for Yeelight devices Added support for LG Smart TVs Added Remote PC Control & Monitoring Infrastructure Improvements Built a full Flask server backend Added a responsive Web Dashboard Improved setup process with automated setup scripts Reworked documentation and README Reliability Improvements Refactored multiple modules with structured exception handling Added better logging and debugging tools Improved API responses and backend stability Enhanced scalability for future device integrations The project is now much closer to becoming a complete privacy-first edge AI smart home hub capable of controlling multiple device ecosystems from a single interface.", "repo": "https://github.com/travletothefurureprogramming/Edge-AI-Home-Monitoring-System", "demo": "https://edgeaihomemonitoringsystem.carrd.co/"}, {"ship_num": 3, "ts": "2026-06-03T14:57:54Z", "hours": 9.0, "multiplier": 15.16, "payout": 129, "blessing": "neutral", "text": "I have made an Edge-AI Home Monitoring System. It is a privacy-first, edge-AI home automation hub using Linux, Flask, and real-time control to orchestrate smart devices.", "repo": "https://github.com/travletothefurureprogramming/Edge-AI-Home-Monitoring-System", "demo": "https://edgeaihomemonitoringsystem.carrd.co/"}]...
|
[{"post_id": 30918, "ts": "202 [{"post_id": 30918, "ts": "2026-07-18T22:06:31Z", "hours": 2.7133, "text": "🧪 Reliability & CI Improvements This update also focuses on improving the project’s reliability and development workflow. What’s New Added 20 Pytest test cases covering the core functionality of the system, helping verify that critical components behave correctly and reducing the risk of regressions. Configured GitHub Actions to automatically execute the entire test suite after every commit and pull request, ensuring new changes don’t break existing functionality. Why It Matters Automated testing and Continuous Integration (CI) make the project more robust, maintainable, and production-ready. Every code change is now automatically validated before it becomes part of the project, providing faster feedback during development and increasing confidence in future updates."}, {"post_id": 29426, "ts": "2026-07-16T11:26:44Z", "hours": 2.9903, "text": "🐳 Docker Setup: 100% Functional Docker support for the Edge-AI Home Monitoring System is now fully working end-to-end. What’s New First-Run Setup via HTML : Instead of manual configuration steps, the very first launch now opens a lightweight HTML setup page that walks through the initial configuration once (credentials, device registration basics, etc.). After this one-time run, it’s never needed again — the container remembers everything through the persisted config volumes. One Command to Rule Them All : The whole system — Flask backend, Docker container, and now the first-run setup — is launched with a single script: Windows: start.bat Linux: start.sh No more manually running docker compose , checking dependencies, or following multi-step instructions. Just run the script for your OS and the entire stack comes up ready to use. Why It Matters This closes the loop on the Docker migration from a few devlogs ago. Before, Docker removed the Python/venv/dependency headaches but still required knowing the right compose commands. Now the onboarding experience is genuinely “clone → run one script → done,” with the HTML first-run page handling the last bit of manual setup that used to require touching config files by hand."}, {"post_id": 27850, "ts": "2026-07-13T18:59:41Z", "hours": 1.8536, "text": "🚀 One of the Biggest Updates: Docker-Based Setup & Minimal Installation The Edge-AI Home Monitoring System has just received its most significant infrastructure overhaul yet! We have completely re-engineered the deployment workflow. Instead of dealing with manual environment configurations, matching Python versions, and tracking down dependency conflicts, the entire ecosystem can now be spun up instantly with a single command. 🐳 What’s New: Containerized Architecture By migrating the platform to a fully containerized backend , we’ve moved away from fragile local setups closer to a production-grade deployment. Key Improvements: Isolated Environment: The Flask backend and all its core libraries run inside an isolated Docker container, completely immune to host-system configuration drifts. Automated Dependency Management: All heavy-lifting dependencies are resolved and cached automatically inside the image. State & Configuration Persistence: Your custom devices_config.json , automation rules, and local database models are securely mapped via Docker volumes, meaning they persist perfectly across container restarts and updates. High Portability: Moving the hub from a development PC to a dedicated home server (like a Fedora Linux box or a Raspberry Pi) is now completely seamless. ⚡ Setup: Before vs. After The difference in onboarding friction is night and day. Look at how the installation footprint has shrunk: Old Manual Setup New Docker Workflow ❌ Install Python manually & match versions 📦 Pre-configured runtime environment ❌ Create virtual environments ( venv ) 📦 Isolated container filesystems ❌ Debug pip dependency conflicts 📦 One-time automated image build ❌ Manually set environment variables 📦 Declarative configuration via Compose ❌ Run background scripts step-by-step 📦 Single-command multi-service launch The New Minimal Installation Path: Now, launching your privacy-first smart home hub requires nothing more than standard container tools: # Clone the repository git clone https://github.com/travletothefurureprogramming/Edge-AI-Home-Monitoring-System # Navigate to the project root cd Edge-AI-Home-Monitoring-System # Spin up the entire system in detached mode docker compose up -d"}, {"post_id": 27230, "ts": "2026-07-12T16:46:07Z", "hours": 0.7819, "text": "UI Modernization & Native Sonos Integration 🎵🎨 A massive structural and visual update has landed! The Edge-AI Home Monitoring System dashboard has been rewritten into a production-grade, single-page interface using the modern Inter typeface family. Alongside this visual overhaul, we are introducing native, local-only support for Sonos Smart Audio Devices . What’s New 1. High-End Minimalist UI & CSS Token Architecture The new interface shifts away from crowded layouts to a highly scannable, component-driven architecture featuring a strict color and spacing utility system built directly into :root . Unified Palette System: Built entirely on minimal token foundations: light-mode canvas backgrounds ( #fafafa ), precise surface modules ( #ffffff ), and structural crisp border outlines ( #e7e7e7 / #d9d9d9 ). Blur-Effects Navigation Header ( .topbar ): A sticky system header utilizing backdrop-filter: blur(8px) that embeds the new brand mark ( A Home ) alongside a live status strip displaying the total device count, registered automations, and an immediate visual green heartbeat indicator ( .live-dot ). Decoupled Grid Control ( .grid ): Devices are rendered dynamically using a responsive auto-fill layout ( minmax(240px, 1fr) ) with explicit styling classes for device actions ( .btn.on for soft green feedback, .btn.off for soft red, and .btn.accent for special triggers). Asynchronous AI Assistant Component ( .ai-panel ): A dedicated section housing the local LLM interaction logic, optimized with a smooth CSS-animated text typing loop ( @keyframes dotfade ) to indicate processing states without blocking UI interactions. 2. Native Sonos Smart Audio Core Integration Audio control joins our local device tree. The system now natively communicates with Sonos devices over the local network via unified backend hooks, matching our privacy-first design patterns. The control grid maps the specific target API endpoints directly to native UI inputs, enabling immediate transmission of core execution parameters: play — Resumes audio streaming ( .btn.on ) pause — Pauses current media layout tracking stop — Breaks audio buffering completely ( .btn.off ) volume_up & volume_down — Alters hardware volume steps Real-Time “Now Playing” UI Subview Sonos control cards now dynamically build and inject an interactive media HUD element ( .now-playing ). Dynamic Media Binding: Communicates with the new /api/music/current endpoint via explicit POST JSON payloads ( { room, type, number, command: 'get', device } ). Visual Playback Flags: Implements dynamic active toggles ( .now-playing.playing ) that shift asset opacity states depending on network audio feedback. Non-Blocking Control Pulls: The inline manual update button ( .np-refresh ) relies on an isolated asynchronous CSS loop wrapper ( @keyframes spin ) allowing updates without triggering full dashboard asset re-renders."}, {"post_id": 27152, "ts": "2026-07-12T13:36:12Z", "hours": 0.6378, "text": "Samsung Smart TV Support Added 📺 The Edge-AI Home Monitoring System now includes full support for Samsung Smart TVs running Tizen OS, expanding the platform’s smart device ecosystem with another major TV manufacturer. This integration uses the Samsung TV WebSocket API, allowing the system to communicate directly with compatible TVs over the local network without requiring additional hardware such as IR blasters. What’s New Added a new Samsung TV backend integration using the samsungtvws Python library. Implemented support for: Power control (ON/OFF) Remote key commands Volume control Device information retrieval Samsung TVs are now registered as a native device type inside the system, following the same architecture used by other integrations such as LG WebOS, Daikin, Tapo, Hue, Yeelight, Shelly, and Broadlink. Why It Matters Until now, TV support was mainly focused on LG Smart TVs and IR-controlled televisions through Broadlink. With Samsung Smart TV support, the system can now directly control another major smart TV ecosystem using its official network interface. This improves: Response time compared to IR control Local-only communication (no cloud dependency) Compatibility with more homes Technical Details The integration communicates with Samsung TVs through: Samsung Tizen WebSocket API Local network TCP communication Device authentication pairing The system keeps the same device abstraction model used by the rest of the project, making Samsung TVs behave like any other controllable smart device. Challenges Some challenges during implementation: Handling Samsung’s first-time pairing approval system Managing WebSocket connections reliably Ensuring compatibility between different Tizen TV models Mapping Samsung remote key codes into the existing device command structure Next Steps Future improvements: Add automatic Samsung TV discovery Add real-time TV status feedback (power state, current app, volume) Add voice assistant commands for Samsung TVs - Add more controls Samsung Smart TVs are now another fully supported platform in the Edge-AI Home Monitoring System, bringing the project closer to becoming a complete privacy-first smart home hub."}, {"post_id": 26718, "ts": "2026-07-11T17:52:05Z", "hours": 0.8892, "text": "Full Broadlink Universal Remote Support The Edge-AI Home Monitoring System now includes complete support for Broadlink Universal Remotes , allowing the platform not only to learn IR commands but also to transmit them directly to infrared-controlled devices. What’s New Added a dedicated Broadlink backend integration for sending stored IR commands. Implemented a new /api/broadlink endpoint for controlling Broadlink devices from the dashboard and automation engine. Added a Broadlink device class responsible for: Connecting and authenticating with Broadlink RM-series devices. Reading learned IR codes from broadlink_codes.json . Sending IR packets using device.send_data() . Full support for controlling: TVs Air Conditioners TV Decoders / Set-Top Boxes Broadlink devices are now treated like any other supported smart device and can be used throughout the entire system. Why It Matters This is a major milestone because the system is no longer limited to devices with official APIs. Thousands of legacy appliances—including older televisions, air conditioners, and cable/satellite decoders—can now be integrated into the smart home ecosystem using only their existing infrared remote controls. Users can control these devices from: The Web Dashboard Automation Rules Future Voice Assistant integrations Any API client connected to the system This significantly expands compatibility while maintaining the project’s privacy-first, local-control philosophy. Challenges IR packets must be converted back into raw byte format before transmission. Maintaining synchronization between learned codes and registered Broadlink devices remains important as the number of supported devices grows. Multiple Broadlink hubs on the same network still require a device selection mechanism, which will be addressed in a future update. Next Steps Add automatic Broadlink hub discovery and selection. Integrate Broadlink commands into the Rule Engine as event triggers. Add support for macro commands (multiple IR signals with delays). Improve the dashboard with command management and testing tools."}, {"post_id": 26187, "ts": "2026-07-10T20:47:59Z", "hours": 1.8417, "text": "Broadlink IR Learning App + Voice Guidance in Setup The Edge-AI Home Monitoring System now has its own tool for learning IR signals, as well as voice guidance throughout the setup process. What’s Added Broadlink IR Learning App New desktop application (customtkinter) that connects to a Broadlink device (RM-series) via broadlink.discover() and authenticates automatically. Device type selection (TV / AC / Decoder) with dynamic list of commands depending on the type (on/off, channel up/down, volume, direction, menu, etc.). “Learn & Save” function: Broadlink enters learning mode, waits for the signal from the real remote control and saves the hex packet. The signals are stored in two places: broadlink_codes.json — file-library of all codes per room/device/command. devices_config.json — so that the device is automatically registered as an entry in the system’s main config, with flag is_broadlink_device: true . Voice Guidance in Setup Wizard Added text-to-speech (via pyttsx4 , in a separate thread so as not to block the UI) to each step of the setup wizard: installing dependencies, downloading AI model, creating password, setting Tailscale, Telegram token/chat ID, and registering devices. Each device type during registration (Tapo, Philips Hue, Shelly, Broadlink, etc.) now “explains” vocally which fields need to be filled in, making the process more accessible for someone who is setting up the system for the first time without reading documentation. Also added broadlink as a new device type in the setup wizard dropdown, which opens the Learning App directly when selected. Why It Matters Until now, the system only supported devices with official APIs (Tapo, Hue, Yeelight, LG WebOS, Daikin). Many “dumb” devices at home (old ACs, decoders, TVs without smart features) are controlled only via IR remote — the Broadlink learning app paves the way to integrate virtually any device with an IR remote into the ecosystem, without the need for a special library per brand. Voice guidance also makes setup more accessible — less need to read README step by step, the system tells you what to do live. Challenges async_connect of the Kasa class has incorrect syntax ( await self.device = ... instead of self.device = await ... ) — same problem as previous devlog, still pending. In the Learning App, the device data is temporarily stored in two separate files ( broadlink_codes.json and devices_config.json ) — care must be taken to ensure that they do not become out of sync if a write fails in the middle. The Broadlink device is always identified as devices[0] by broadlink.discover() — if there are multiple Broadlink devices on the network, the app will always connect to the first one found, without selection. TTS requires CoInitialize / CoUninitialize on each thread (Windows-specific), which makes the code less portable to other OSes. Next Steps Full support for sending signals via Broadlink devices (not just learning) — i.e. new /api/broadlink endpoint and Broadlink class in the backend that will read the stored hex codes from broadlink_codes.json and send them via device.send_data() . Integrate Broadlink devices as actions in the Rule Engine, so they can be used in automations like any other device. Wiring emit_device_event to Broadlink sends, so they can also be trigger sources. Fix bug in Kasa.async_connect before any other work on Kasa progresses."}, {"post_id": 25929, "ts": "2026-07-10T12:59:31Z", "hours": 0.6778, "text": "Kasa (TP-Link) Support Added The Edge-AI Home Monitoring System now supports TP-Link Kasa smart plugs/switches, using the python-kasa library’s async Discover API for device communication. What’s New New Kasa class that discovers a device by IP via Discover.discover_single() (with optional username/password for cloud-authenticated devices) and wraps turn_on / turn_off / execute_command behind the same asyncio.run() pattern already used for Daikin and the Tapo devices. New /api/kasa endpoint, gated behind @auth.login_required like the rest of the device APIs. Registered kasa in DEVICE_ENDPOINTS and wired it into create_device_action , so Kasa devices can already be used as automation actions from day one. Added send_kasa and send_daikin helper functions alongside the other device senders, for consistency across the codebase. Why This Matters Kasa is one of the most common smart plug ecosystems out there, so this adds another affordable device family to the system without needing a proprietary hub — anything plugged into a Kasa switch can now be turned on/off from the dashboard or from an automation rule, the same way Tapo and Shelly devices already are. Challenges Ran into a syntax issue in async_connect : await self.device = Discover.discover_single(...) isn’t valid — assignment has to come first, i.e. self.device = await Discover.discover_single(...) . Needs fixing before this can actually run. handle_kasa currently points at a config path ( /config/device_config.json ) that doesn’t match the filename ( devices_config.json ) or the relative-path convention used by every other handler — needs to be corrected to \"config/devices_config.json\" . Same route also references data[\"Room\"][room][dev_type][number][ip] with ip unquoted (a variable reference instead of the string key \"ip\" ), which will throw a NameError rather than the intended KeyError . emit_device_event still isn’t wired into the Kasa (or Shelly) handler, so — same as the other non-TV devices — Kasa state changes can’t yet act as automation triggers. Next Steps Fix the await /assignment order bug in Kasa.async_connect , the config path, and the unquoted \"ip\" key in /api/kasa before testing against a real device. Wire emit_device_event into Kasa, Shelly, and the remaining handlers so any device can act as both an action and a trigger. Once event emission is consistent across all device types, move on to energy monitoring for the Tapo smart plugs."}, {"post_id": 25885, "ts": "2026-07-10T11:31:06Z", "hours": 0.695, "text": "Shelly Support Added The Edge-AI Home Monitoring System now supports Shelly smart relays, using the ShellyPy library to control relay-based devices (plugs, switches, etc.) over the local network. What’s New New Shelly class wrapping ShellyPy.Shelly , with turn_on_relay / turn_off_relay methods and an execute_command dispatcher for on / off commands. New /api/shelly endpoint that reads the device’s IP and relay_number from devices_config.json and forwards the command to the relay. Registered shelly in DEVICE_ENDPOINTS and wired it into create_device_action , so Shelly devices can already be used as automation actions (schedule or event triggered), same as every other device type. Why This Matters Shelly relays are a common, cheap way to add “dumb” appliances into the automation system — a fan, a boiler, anything behind a relay can now be toggled from the dashboard or from a rule, without needing a dedicated smart-device ecosystem. Challenges Noticed /api/shelly is currently missing the @auth.login_required decorator that every other device endpoint has — since authentication was added, this is the one route that slipped through. Needs to be fixed before this ships anywhere network-exposed. Shelly relays are addressed by relay_number rather than an id /model like the other integrations, so the config schema needed a small variation ( relay_number field) instead of reusing the existing device pattern exactly. emit_device_event isn’t wired into the Shelly handler yet, so — like the other non-TV devices — a Shelly state change can’t currently act as a trigger for other automations. Next Steps Add the missing @auth.login_required to /api/shelly . Wire emit_device_event into the Shelly (and remaining) handlers so any device can be both an action and a trigger source. Once event emission is consistent across all device types, move on to energy monitoring for the Tapo smart plugs."}, {"post_id": 25861, "ts": "2026-07-10T10:45:47Z", "hours": 0.7478, "text": "Device-Triggered Chaining: Automations Now React to Device State Changes The Rule Engine already supported schedule triggers and one hardcoded event source (the YOLO “person_detected” signal). This update adds a much more general capability: automations can now trigger off of any device state change , not just security events. What’s New Added emit_device_event(room, dev_type, command), a helper that builds an event name in the form {room} {dev_type} {command} (e.g. living_room_lg_tv_on) and forwards it to AutomationManager.trigger_event. Wired this into the /api/tv endpoint: every time a TV command succeeds, the system now emits an event describing exactly what just happened. This means a rule can be created like “when the Living Room TV turns on → turn on the Living Room lights” without any new trigger type — it reuses the same event-rule machinery already built for the security pipeline. Event names are deterministic and human-readable, so building new automations from the dashboard just means picking the right device + command combo as the trigger. Why This Matters Until now, “smart” behavior meant either a fixed schedule or a single special-cased sensor event. This generalizes the pattern: any device action can become a trigger for any other device action, which is the actual foundation of “automation chaining” (TV on → lights on, plug on → AC on, etc.) rather than a one-off integration. Challenges emit_device_event is currently only called from the TV handler. The Tapo, Philips Hue, Yeelight, and Daikin handlers don’t emit events yet, so right now only TV state changes can kick off a chain — everything else is still a dead end as a trigger source. This is the next thing to close. Needed to be careful that emitting the event happens after the command actually succeeds, not just after it’s requested, so a failed TV command doesn’t fire a chain based on a state change that never happened. Next Steps Add emit_device_event calls to the remaining device handlers (Tapo light/LED strip, Hue, Yeelight, Daikin) so any device can act as a trigger, not just TVs. Once persistence for automation actions is fully solid across restarts, move on to energy monitoring for the Tapo smart plugs."}, {"post_id": 23760, "ts": "2026-07-06T21:49:22Z", "hours": 0.7892, "text": "Automations are Live: Schedules & Event Triggers The Rule Engine I mentioned as “next steps” in the last few devlogs is now fully working. The Edge-AI Home Monitoring System can now react on its own, without me touching the dashboard. What’s New New AutomationManager class that manages rules independently of the Flask request lifecycle, running on its own background thread Schedule triggers : fire any device action at a specific time of day (cron-based under the hood, e.g. “turn off all lights at 23:30”) Event triggers : fire actions the moment something happens in the system — currently wired up to the YOLO security pipeline, so a rule can say “when a person is detected, turn on the living room lights” Automations are managed straight from the dashboard: add a rule (pick a device, a command, and either a time or an event), see the active list, delete on demand — no need to touch the config files by hand Rules persist to disk, so they survive a server restart Challenges The trickiest part wasn’t the scheduling logic itself — it was making sure automation actions don’t accidentally go through the same path as normal API requests. Since every device endpoint is gated behind session-based login, having the automation thread call itself over HTTP triggered 401s (a background thread has no browser session, obviously). Fixed by having automation actions call the device classes directly instead of looping back through HTTP — cleaner and faster anyway, since it skips a full request round-trip for something that’s technically internal. Next Steps Energy monitoring for the Tapo smart plugs, so automations can eventually be built around actual consumption data too."}, {"post_id": 23432, "ts": "2026-07-06T12:12:20Z", "hours": 0.7306, "text": "Create Autoation Manager class"}, {"post_id": 23410, "ts": "2026-07-06T10:52:32Z", "hours": 0.8403, "text": "Added Daikin AC Support The Edge-AI Home Monitoring System now extends into climate control. I’ve added full support for Daikin air conditioners, using the pydaikin library for asynchronous communication with the device over the network. What’s New New DaikinAC class with full control: on/off, increase/decrease temperature, and mode switching (auto, cool, heat, dry, fan) New /api/daikin endpoint for device communication Integrated into the same authentication pattern used across the whole system ( @auth.login_required ), so no new device ecosystem opens a security gap Dashboard controls for Daikin devices, including a mode selection dropdown Challenges Since pydaikin is fully asynchronous (async context managers), each client call had to be wrapped with asyncio.run() to fit into the rest of the synchronous Flask backend — the same approach used for the Tapo devices. Next Steps Rule Engine / Automations system, followed by energy monitoring for the Tapo smart plugs."}, {"post_id": 23380, "ts": "2026-07-06T09:40:25Z", "hours": 0.3508, "text": "Improving the Project Structure One of the biggest challenges in the project was the lack of organization. As the codebase grew, it became harder to navigate and maintain. Today I reorganized the project into a much cleaner structure, making the code easier to understand, extend, and maintain. While there’s still room for improvement, this is a solid step toward a more scalable architecture. What’s Next? Add automation features. Implement energy consumption monitoring for Tapo devices."}, {"post_id": 23116, "ts": "2026-07-05T21:29:56Z", "hours": 0.9906, "text": "Added Authentication System Up until now, the dashboard and all API endpoints were completely open to anyone on the network — a serious problem for a system that controls cameras, smart devices, and even has Remote PC Control capabilities. I implemented a single-admin authentication layer using Flask sessions and password hashing (werkzeug), gating access behind a login page. Key changes: Added a /login route with session-based authentication Passwords are hashed (never stored in plain text) using pbkdf2:sha256 Wrapped every sensitive route with a @login_required decorator — dashboard, device control APIs, camera toggle, and system/remote-PC endpoints API routes return a clean 401 Unauthorized instead of redirecting, so the frontend can handle it gracefully Sessions auto-expire, requiring re-login after a set period This closes the biggest security gap in the project — previously, anyone with access to the local network or Tailscale IP could control devices or the PC without any barrier. Now, all of that is locked behind credentials only I know. Next steps: Rule engine for automations (trigger-based actions), followed by energy monitoring for Tapo smart plugs."}, {"post_id": 15904, "ts": "2026-06-25T21:00:48Z", "hours": 1.1647, "text": "One of the biggest improvements in this update is the error handling system. Originally, the project had very minimal error management, which could lead to unstable behavior and unclear debugging. I refactored multiple modules to introduce structured exception handling, improved logging, and more consistent API responses. This makes the system significantly more stable and easier to debug in real-world usage."}, {"post_id": 15616, "ts": "2026-06-25T12:18:35Z", "hours": 0.5661, "text": "Integration of Remote PC Control & Monitoring into Edge-AI Home Monitoring System. This way the user can control the system remotely. There is a problem with the management of Processes due to an error in the backend."}, {"post_id": 7988, "ts": "2026-06-13T10:14:41Z", "hours": 0.3117, "text": "I added support for Yeelight. It may have only taken me 15 minutes but that was because the Yeelight library I used was very simple. Also because the system is easily extensible I managed to do it in a very short time."}, {"post_id": 7979, "ts": "2026-06-13T09:46:03Z", "hours": 0.7483, "text": "Add fully suppourt for phue devices"}, {"post_id": 7959, "ts": "2026-06-13T08:58:51Z", "hours": 0.2869, "text": "Make the main class and logic for the Philips Hue lights"}, {"post_id": 4423, "ts": "2026-06-07T19:02:12Z", "hours": 0.5789, "text": "Add suppourt for Tapo Smart Plugs"}, {"post_id": 2743, "ts": "2026-06-05T14:46:14Z", "hours": 0.3408, "text": "Add model selection for tapo led strip and tapo light bulbs and make a more clear README.md"}, {"post_id": 2730, "ts": "2026-06-05T14:17:19Z", "hours": 0.6944, "text": "Setup the server! The project will be fully ready soon!!!"}, {"post_id": 2703, "ts": "2026-06-05T12:30:07Z", "hours": 0.5861, "text": "A better setup and run for servers and a more clear README.md"}, {"post_id": 2689, "ts": "2026-06-05T11:33:31Z", "hours": 1.47, "text": "Make a functional server App"}, {"post_id": 2100, "ts": "2026-06-04T13:04:12Z", "hours": 0.7119, "text": "LG TVs in Edge AI Home Monitoring System from now!!!!!!"}, {"post_id": 2071, "ts": "2026-06-04T11:56:50Z", "hours": 0.5139, "text": "Working on LG TV suppourt"}, {"post_id": 2060, "ts": "2026-06-04T11:23:24Z", "hours": 1.1203, "text": "From now Edge-AI Home Monitoring System suppourt tapo smart bulbs!!!!"}, {"post_id": 1538, "ts": "2026-06-03T16:50:58Z", "hours": 0.5186, "text": "Make a telegram bot for easily security and device control"}, {"post_id": 1509, "ts": "2026-06-03T16:05:24Z", "hours": 0.9681, "text": "Making a sequrity system using YOLO and Telegram"}, {"post_id": 1467, "ts": "2026-06-03T14:56:45Z", "hours": 0.5039, "text": "Make a better README.md file and finalize the setup proccess"}, {"post_id": 1426, "ts": "2026-06-03T13:37:14Z", "hours": 0.7961, "text": "Make better readme"}, {"post_id": 1394, "ts": "2026-06-03T12:31:57Z", "hours": 1.1769, "text": "Make a setup script"}, {"post_id": 1370, "ts": "2026-06-03T11:15:13Z", "hours": 1.5264, "text": "Make an app for easy use of AI and also ad functional control for the L900 tapo ledstrip"}, {"post_id": 1343, "ts": "2026-06-03T09:16:06Z", "hours": 1.48, "text": "A new modern dashboard and more devices"}, {"post_id": 757, "ts": "2026-06-02T12:08:30Z", "hours": 1.3436, "text": "Performance Optimization & Frontend Integration After intensive testing, the communication system with Android TV devices has been fully upgraded. The latency observed in command execution has been eliminated, and the project now features its own Web Dashboard. Key Achievements: ADB Server Persistence: Resolved the critical issue regarding the continuous restart of the ADB server. By adopting the Registry Pattern, connections are now maintained (persistent), drastically reducing response time from 5+ seconds to near-zero (real-time). Scalability: The backend has been developed to support the simultaneous control of multiple Android TVs. The system now dynamically manages connections via a central dictionary, allowing for the addition of unlimited devices through devices.json. Frontend Dashboard: Developed a minimal and responsive interface (HTML/JS) that provides full device control. Communication with the server is now handled via the Fetch API with proper CORS and JSON payload handling. Robust Error Handling: Upgraded the error reporting mechanism. The server now actively monitors module status and allows for automatic reset in case of connection restoration. Next Steps: Integration of real-time status feedback to monitor whether a TV is ON/OFF directly on the dashboard. Further optimization of utils.py for more secure inter-module communication."}, {"post_id": 723, "ts": "2026-06-02T09:50:03Z", "hours": 1.6753, "text": "Establishing the Backend Infrastructure for Edge AI Home Monitoring System Today, I successfully built the core communication layer for my Edge AI Home Monitoring System. I focused on creating a robust backend using Flask, enabling the system to act as a central hub for my home devices. Key Achievements: API Orchestration: Developed Flask endpoints (/api/light and /api/tv) to handle state management and device control requests efficiently. Hardware Integration: Implemented an abstraction layer for AndroidTV control, allowing the server to issue commands like power toggles, volume adjustment, and channel navigation over the network. Dynamic Configuration: Built a utility module to handle JSON-based device mapping, ensuring the system can scale easily by reading device IPs and types from a central devices.json configuration file. Logging System: Integrated a custom logger to monitor command execution in real-time, which is essential for debugging my edge-computing setup. Next Steps: Now that the server is successfully running and handling commands, the next phase is to add more devices and create the frontend dashboard."}]...
|
Title: Edge-AI Home Monitoring System by @Greg_ios Title: Edge-AI Home Monitoring System by @Greg_ios | Stardance
Devlogs:
Establishing the Backend Infrastructure for Edge AI Home Monitoring System Today, I successfully built the core communication layer for my Edge AI Home Monitoring System. I focused on creating a robust backend using Flask, enabling the system to act as a central hub for my home devices. Key Achievements: API Orchestration: Developed Flask endpoints (/api/light and /api/tv) to handle state management and device control requests efficiently. Hardware Integration: Implemented an abstraction layer for AndroidTV control, allowing the server to issue commands like power toggles, volume adjustment, and channel navigation over the network. Dynamic Configuration: Built a utility module to handle JSON-based device mapping, ensuring the system can scale easily by reading device IPs and types from a central devices.json configuration file. Logging System: Integrated a custom logger to monitor command execution in real-time, which is essential for debugging my edge-computing setup. Next Steps: Now that the server is successfully running and handling commands, the next phase is to add more devices and create the frontend dashboard.
Performance Optimization & Frontend Integration After intensive testing, the communication system with Android TV devices has been fully upgraded. The latency observed in command execution has been eliminated, and the project now features its own Web Dashboard. Key Achievements: ADB Server Persistence: Resolved the critical issue regarding the continuous restart of the ADB server. By adopting the Registry Pattern, connections are now maintained (persistent), drastically reducing response time from 5+ seconds to near-zero (real-time). Scalability: The backend has been developed to support the simultaneous control of multiple Android TVs. The system now dynamically manages connections via a central dictionary, allowing for the addition of unlimited devices through devices.json. Frontend Dashboard: Developed a minimal and responsive interface (HTML/JS) that provides full device control. Communication with the server is now handled via the Fetch API with proper CORS and JSON payload handling. Robust Error Handling: Upgraded the error reporting mechanism. The server now actively monitors module status and allows for automatic reset in case of connection restoration. Next Steps: Integration of real-time status feedback to monitor whether a TV is ON/OFF directly on the dashboard. Further optimization of utils.py for more secure inter-module communication.
A new modern dashboard and more devices
Make an app for easy use of AI and also ad functional control for the L900 tapo ledstrip
Make a setup script
Make better readme
Make a better README.md file and finalize the setup proccess
Making a sequrity system using YOLO and Telegram
Make a telegram bot for easily security and device control
From now Edge-AI Home Monitoring System suppourt tapo smart bulbs!!!!
Working on LG TV suppourt
LG TVs in Edge AI Home Monitoring System from now!!!!!!
Make a functional server App
A better setup and run for servers and a more clear README.md
Setup the server! The project will be fully ready soon!!!
Add model selection for tapo led strip and tapo light bulbs and make a more clear README.md
Add suppourt for Tapo Smart Plugs
Make the main class and logic for the Philips Hue lights
Add fully suppourt for phue devices
I added support for Yeelight. It may have only taken me 15 minutes but that was because the Yeelight library I used was very simple. Also because the system is easily extensible I managed to do it in a very short time.
Integration of Remote PC Control & Monitoring into Edge-AI Home Monitoring System. This way the user can control the system remotely. There is a problem with the management of Processes due to an error in the backend.
One of the biggest improvements in this update is the error handling system. Originally, the project had very minimal error management, which could lead to unstable behavior and unclear debugging. I refactored multiple modules to introduce structured exception handling, improved logging, and more consistent API responses. This makes the system significantly more stable and easier to debug in real-world usage.
Added Authentication System Up until now, the dashboard and all API endpoints were completely open to anyone on the network — a serious problem for a system that controls cameras, smart devices, and even has Remote PC Control capabilities. I implemented a single-admin authentication layer using Flask sessions and password hashing (werkzeug), gating access behind a login page. Key changes: Added a /login route with session-based authentication Passwords are hashed (never stored in plain text) using pbkdf2:sha256 Wrapped every sensitive route with a @login_required decorator — dashboard, device control APIs, camera toggle, and system/remote-PC endpoints API routes return a clean 401 Unauthorized instead of redirecting, so the frontend can handle it gracefully Sessions auto-expire, requiring re-login after a set period This closes the biggest security gap in the project — previously, anyone with access to the local network or Tailscale IP could control devices or the PC without any barrier. Now, all of that is locked behind credentials only I know. Next steps: Rule engine for automations (trigger-based actions), followed by energy monitoring for Tapo smart plugs.
Improving the Project Structure One of the biggest challenges in the project was the lack of organization. As the codebase grew, it became harder to navigate and maintain. Today I reorganized the project into a much cleaner structure, making the code easier to understand, extend, and maintain. While there’s still room for improvement, this is a solid step toward a more scalable architecture. What’s Next? Add automation features. Implement energy consumption monitoring for Tapo devices.
Added Daikin AC Support The Edge-AI Home Monitoring System now extends into climate control. I’ve added full support for Daikin air conditioners, using the pydaikin library for asynchronous communication with the device over the network. What’s New New DaikinAC class with full control: on/off, increase/decrease temperature, and mode switching (auto, cool, heat, dry, fan) New /api/daikin endpoint for device communication Integrated into the same authentication pattern used across the whole system ( @auth.login_required ), so no new device ecosystem opens a security gap Dashboard controls for Daikin devices, including a mode selection dropdown Challenges Since pydaikin is fully asynchronous (async context managers), each client call had to be wrapped with asyncio.run() to fit into the rest of the synchronous Flask backend — the same approach used for the Tapo devices. Next Steps Rule Engine / Automations system, followed by energy monitoring for the Tapo smart plugs.
Create Autoation Manager class
Automations are Live: Schedules & Event Triggers The Rule Engine I mentioned as “next steps” in the last few devlogs is now fully working. The Edge-AI Home Monitoring System can now react on its own, without me touching the dashboard. What’s New New AutomationManager class that manages rules independently of the Flask request lifecycle, running on its own background thread Schedule triggers : fire any device action at a specific time of day (cron-based under the hood, e.g. “turn off all lights at 23:30”) Event triggers : fire actions the moment something happens in the system — currently wired up to the YOLO security pipeline, so a rule can say “when a person is detected, turn on the living room lights” Automations are managed straight from the dashboard: add a rule (pick a device, a command, and either a time or an event), see the active list, delete on demand — no need to touch the config files by hand Rules persist to disk, so they survive a server restart Challenges The trickiest part wasn’t the scheduling logic itself — it was making sure automation actions don’t accidentally go through the same path as normal API requests. Since every device endpoint is gated behind session-based login, having the automation thread call itself over HTTP triggered 401s (a background thread has no browser session, obviously). Fixed by having automation actions call the device classes directly instead of looping back through HTTP — cleaner and faster anyway, since it skips a full request round-trip for something that’s technically internal. Next Steps Energy monitoring for the Tapo smart plugs, so automations can eventually be built around actual consumption data too.
Device-Triggered Chaining: Automations Now React to Device State Changes The Rule Engine already supported schedule triggers and one hardcoded event source (the YOLO “person_detected” signal). This update adds a much more general capability: automations can now trigger off of any device state change , not just security events. What’s New Added emit_device_event(room, dev_type, command), a helper that builds an event name in the form {room} {dev_type} {command} (e.g. living_room_lg_tv_on) and forwards it to AutomationManager.trigger_event. Wired this into the /api/tv endpoint: every time a TV command succeeds, the system now emits an event describing exactly what just happened. This means a rule can be created like “when the Living Room TV turns on → turn on the Living Room lights” without any new trigger type — it reuses the same event-rule machinery already built for the security pipeline. Event names are deterministic and human-readable, so building new automations from the dashboard just means picking the right device + command combo as the trigger. Why This Matters Until now, “smart” behavior meant either a fixed schedule or a single special-cased sensor event. This generalizes the pattern: any device action can become a trigger for any other device action, which is the actual foundation of “automation chaining” (TV on → lights on, plug on → AC on, etc.) rather than a one-off integration. Challenges emit_device_event is currently only called from the TV handler. The Tapo, Philips Hue, Yeelight, and Daikin handlers don’t emit events yet, so right now only TV state changes can kick off a chain — everything else is still a dead end as a trigger source. This is the next thing to close. Needed to be careful that emitting the event happens after the command actually succeeds, not just after it’s requested, so a failed TV command doesn’t fire a chain based on a state change that never happened. Next Steps Add emit_device_event calls to the remaining device handlers (Tapo light/LED strip, Hue, Yeelight, Daikin) so any device can act as a trigger, not just TVs. Once persistence for automation actions is fully solid across restarts, move on to energy monitoring for the Tapo smart plugs.
Shelly Support Added The Edge-AI Home Monitoring System now supports Shelly smart relays, using the ShellyPy library to control relay-based devices (plugs, switches, etc.) over the local network. What’s New New Shelly class wrapping ShellyPy.Shelly , with turn_on_relay / turn_off_relay methods and an execute_command dispatcher for on / off commands. New /api/shelly endpoint that reads the device’s IP and relay_number from devices_config.json and forwards the command to the relay. Registered shelly in DEVICE_ENDPOINTS and wired it into create_device_action , so Shelly devices can already be used as automation actions (schedule or event triggered), same as every other device type. Why This Matters Shelly relays are a common, cheap way to add “dumb” appliances into the automation system — a fan, a boiler, anything behind a relay can now be toggled from the dashboard or from a rule, without needing a dedicated smart-device ecosystem. Challenges Noticed /api/shelly is currently missing the @auth.login_required decorator that every other device endpoint has — since authentication was added, this is the one route that slipped through. Needs to be fixed before this ships anywhere network-exposed. Shelly relays are addressed by relay_number rather than an id /model like the other integrations, so the config schema needed a small variation ( relay_number field) instead of reusing the existing device pattern exactly. emit_device_event isn’t wired into the Shelly handler yet, so — like the other non-TV devices — a Shelly state change can’t currently act as a trigger for other automations. Next Steps Add the missing @auth.login_required to /api/shelly . Wire emit_device_event into the Shelly (and remaining) handlers so any device can be both an action and a trigger source. Once event emission is consistent across all device types, move on to energy monitoring for the Tapo smart plugs.
Kasa (TP-Link) Support Added The Edge-AI Home Monitoring System now supports TP-Link Kasa smart plugs/switches, using the python-kasa library’s async Discover API for device communication. What’s New New Kasa class that discovers a device by IP via Discover.discover_single() (with optional username/password for cloud-authenticated devices) and wraps turn_on / turn_off / execute_command behind the same asyncio.run() pattern already used for Daikin and the Tapo devices. New /api/kasa endpoint, gated behind @auth.login_required like the rest of the device APIs. Registered kasa in DEVICE_ENDPOINTS and wired it into create_device_action , so Kasa devices can already be used as automation actions from day one. Added send_kasa and send_daikin helper functions alongside the other device senders, for consistency across the codebase. Why This Matters Kasa is one of the most common smart plug ecosystems out there, so this adds another affordable device family to the system without needing a proprietary hub — anything plugged into a Kasa switch can now be turned on/off from the dashboard or from an automation rule, the same way Tapo and Shelly devices already are. Challenges Ran into a syntax issue in async_connect : await self.device = Discover.discover_single(...) isn’t valid — assignment has to come first, i.e. self.device = await Discover.discover_single(...) . Needs fixing before this can actually run. handle_kasa currently points at a config path ( /config/device_config.json ) that doesn’t match the filename ( devices_config.json ) or the relative-path convention used by every other handler — needs to be corrected to "config/devices_config.json" . Same route also references data["Room"][room][dev_type][number][ip] with ip unquoted (a variable reference instead of the string key "ip" ), which will throw a NameError rather than the intended KeyError . emit_device_event still isn’t wired into the Kasa (or Shelly) handler, so — same as the other non-TV devices — Kasa state changes can’t yet act as automation triggers. Next Steps Fix the await /assignment order bug in Kasa.async_connect , the config path, and the unquoted "ip" key in /api/kasa before testing against a real device. Wire emit_device_event into Kasa, Shelly, and the remaining handlers so any device can act as both an action and a trigger. Once event emission is consistent across all device types, move on to energy monitoring for the Tapo smart plugs.
Broadlink IR Learning App + Voice Guidance in Setup The Edge-AI Home Monitoring System now has its own tool for learning IR signals, as well as voice guidance throughout the setup process. What’s Added Broadlink IR Learning App New desktop application (customtkinter) that connects to a Broadlink device (RM-series) via broadlink.discover() and authenticates automatically. Device type selection (TV / AC / Decoder) with dynamic list of commands depending on the type (on/off, channel up/down, volume, direction, menu, etc.). “Learn & Save” function: Broadlink enters learning mode, waits for the signal from the real remote control and saves the hex packet. The signals are stored in two places: broadlink_codes.json — file-library of all codes per room/device/command. devices_config.json — so that the device is automatically registered as an entry in the system’s main config, with flag is_broadlink_device: true . Voice Guidance in Setup Wizard Added text-to-speech (via pyttsx4 , in a separate thread so as not to block the UI) to each step of the setup wizard: installing dependencies, downloading AI model, creating password, setting Tailscale, Telegram token/chat ID, and registering devices. Each device type during registration (Tapo, Philips Hue, Shelly, Broadlink, etc.) now “explains” vocally which fields need to be filled in, making the process more accessible for someone who is setting up the system for the first time without reading documentation. Also added broadlink as a new device type in the setup wizard dropdown, which opens the Learning App directly when selected. Why It Matters Until now, the system only supported devices with official APIs (Tapo, Hue, Yeelight, LG WebOS, Daikin). Many “dumb” devices at home (old ACs, decoders, TVs without smart features) are controlled only via IR remote — the Broadlink learning app paves the way to integrate virtually any device with an IR remote into the ecosystem, without the need for a special library per brand. Voice guidance also makes setup more accessible — less need to read README step by step, the system tells you what to do live. Challenges async_connect of the Kasa class has incorrect syntax ( await self.device = ... instead of self.device = await ... ) — same problem as previous devlog, still pending. In the Learning App, the device data is temporarily stored in two separate files ( broadlink_codes.json and devices_config.json ) — care must be taken to ensure that they do not become out of sync if a write fails in the middle. The Broadlink device is always identified as devices[0] by broadlink.discover() — if there are multiple Broadlink devices on the network, the app will always connect to the first one found, without selection. TTS requires CoInitialize / CoUninitialize on each thread (Windows-specific), which makes the code less portable to other OSes. Next Steps Full support for sending signals via Broadlink devices (not just learning) — i.e. new /api/broadlink endpoint and Broadlink class in the backend that will read the stored hex codes from broadlink_codes.json and send them via device.send_data() . Integrate Broadlink devices as actions in the Rule Engine, so they can be used in automations like any other device. Wiring emit_device_event to Broadlink sends, so they can also be trigger sources. Fix bug in Kasa.async_connect before any other work on Kasa progresses.
Full Broadlink Universal Remote Support The Edge-AI Home Monitoring System now includes complete support for Broadlink Universal Remotes , allowing the platform not only to learn IR commands but also to transmit them directly to infrared-controlled devices. What’s New Added a dedicated Broadlink backend integration for sending stored IR commands. Implemented a new /api/broadlink endpoint for controlling Broadlink devices from the dashboard and automation engine. Added a Broadlink device class responsible for: Connecting and authenticating with Broadlink RM-series devices. Reading learned IR codes from broadlink_codes.json . Sending IR packets using device.send_data() . Full support for controlling: TVs Air Conditioners TV Decoders / Set-Top Boxes Broadlink devices are now treated like any other supported smart device and can be used throughout the entire system. Why It Matters This is a major milestone because the system is no longer limited to devices with official APIs. Thousands of legacy appliances—including older televisions, air conditioners, and cable/satellite decoders—can now be integrated into the smart home ecosystem using only their existing infrared remote controls. Users can control these devices from: The Web Dashboard Automation Rules Future Voice Assistant integrations Any API client connected to the system This significantly expands compatibility while maintaining the project’s privacy-first, local-control philosophy. Challenges IR packets must be converted back into raw byte format before transmission. Maintaining synchronization between learned codes and registered Broadlink devices remains important as the number of supported devices grows. Multiple Broadlink hubs on the same network still require a device selection mechanism, which will be addressed in a future update. Next Steps Add automatic Broadlink hub discovery and selection. Integrate Broadlink commands into the Rule Engine as event triggers. Add support for macro commands (multiple IR signals with delays). Improve the dashboard with command management and testing tools.
Samsung Smart TV Support Added 📺 The Edge-AI Home Monitoring System now includes full support for Samsung Smart TVs running Tizen OS, expanding the platform’s smart device ecosystem with another major TV manufacturer. This integration uses the Samsung TV WebSocket API, allowing the system to communicate directly with compatible TVs over the local network without requiring additional hardware such as IR blasters. What’s New Added a new Samsung TV backend integration using the samsungtvws Python library. Implemented support for: Power control (ON/OFF) Remote key commands Volume control Device information retrieval Samsung TVs are now registered as a native device type inside the system, following the same architecture used by other integrations such as LG WebOS, Daikin, Tapo, Hue, Yeelight, Shelly, and Broadlink. Why It Matters Until now, TV support was mainly focused on LG Smart TVs and IR-controlled televisions through Broadlink. With Samsung Smart TV support, the system can now directly control another major smart TV ecosystem using its official network interface. This improves: Response time compared to IR control Local-only communication (no cloud dependency) Compatibility with more homes Technical Details The integration communicates with Samsung TVs through: Samsung Tizen WebSocket API Local network TCP communication Device authentication pairing The system keeps the same device abstraction model used by the rest of the project, making Samsung TVs behave like any other controllable smart device. Challenges Some challenges during implementation: Handling Samsung’s first-time pairing approval system Managing WebSocket connections reliably Ensuring compatibility between different Tizen TV models Mapping Samsung remote key codes into the existing device command structure Next Steps Future improvements: Add automatic Samsung TV discovery Add real-time TV status feedback (power state, current app, volume) Add voice assistant commands for Samsung TVs - Add more controls Samsung Smart TVs are now another fully supported platform in the Edge-AI Home Monitoring System, bringing the project closer to becoming a complete privacy-first smart home hub.
UI Modernization & Native Sonos Integration 🎵🎨 A massive structural and visual update has landed! The Edge-AI Home Monitoring System dashboard has been rewritten into a production-grade, single-page interface using the modern Inter typeface family. Alongside this visual overhaul, we are introducing native, local-only support for Sonos Smart Audio Devices . What’s New 1. High-End Minimalist UI & CSS Token Architecture The new interface shifts away from crowded layouts to a highly scannable, component-driven architecture featuring a strict color and spacing utility system built directly into :root . Unified Palette System: Built entirely on minimal token foundations: light-mode canvas backgrounds ( #fafafa ), precise surface modules ( #ffffff ), and structural crisp border outlines ( #e7e7e7 / #d9d9d9 ). Blur-Effects Navigation Header ( .topbar ): A sticky system header utilizing backdrop-filter: blur(8px) that embeds the new brand mark ( A Home ) alongside a live status strip displaying the total device count, registered automations, and an immediate visual green heartbeat indicator ( .live-dot ). Decoupled Grid Control ( .grid ): Devices are rendered dynamically using a responsive auto-fill layout ( minmax(240px, 1fr) ) with explicit styling classes for device actions ( .btn.on for soft green feedback, .btn.off for soft red, and .btn.accent for special triggers). Asynchronous AI Assistant Component ( .ai-panel ): A dedicated section housing the local LLM interaction logic, optimized with a smooth CSS-animated text typing loop ( @keyframes dotfade ) to indicate processing states without blocking UI interactions. 2. Native Sonos Smart Audio Core Integration Audio control joins our local device tree. The system now natively communicates with Sonos devices over the local network via unified backend hooks, matching our privacy-first design patterns. The control grid maps the specific target API endpoints directly to native UI inputs, enabling immediate transmission of core execution parameters: play — Resumes audio streaming ( .btn.on ) pause — Pauses current media layout tracking stop — Breaks audio buffering completely ( .btn.off ) volume_up & volume_down — Alters hardware volume steps Real-Time “Now Playing” UI Subview Sonos control cards now dynamically build and inject an interactive media HUD element ( .now-playing ). Dynamic Media Binding: Communicates with the new /api/music/current endpoint via explicit POST JSON payloads ( { room, type, number, command: 'get', device } ). Visual Playback Flags: Implements dynamic active toggles ( .now-playing.playing ) that shift asset opacity states depending on network audio feedback. Non-Blocking Control Pulls: The inline manual update button ( .np-refresh ) relies on an isolated asynchronous CSS loop wrapper ( @keyframes spin ) allowing updates without triggering full dashboard asset re-renders.
🚀 One of the Biggest Updates: Docker-Based Setup & Minimal Installation The Edge-AI Home Monitoring System has just received its most significant infrastructure overhaul yet! We have completely re-engineered the deployment workflow. Instead of dealing with manual environment configurations, matching Python versions, and tracking down dependency conflicts, the entire ecosystem can now be spun up instantly with a single command. 🐳 What’s New: Containerized Architecture By migrating the platform to a fully containerized backend , we’ve moved away from fragile local setups closer to a production-grade deployment. Key Improvements: Isolated Environment: The Flask backend and all its core libraries run inside an isolated Docker container, completely immune to host-system configuration drifts. Automated Dependency Management: All heavy-lifting dependencies are resolved and cached automatically inside the image. State & Configuration Persistence: Your custom devices_config.json , automation rules, and local database models are securely mapped via Docker volumes, meaning they persist perfectly across container restarts and updates. High Portability: Moving the hub from a development PC to a dedicated home server (like a Fedora Linux box or a Raspberry Pi) is now completely seamless. ⚡ Setup: Before vs. After The difference in onboarding friction is night and day. Look at how the installation footprint has shrunk: Old Manual Setup New Docker Workflow ❌ Install Python manually & match versions 📦 Pre-configured runtime environment ❌ Create virtual environments ( venv ) 📦 Isolated container filesystems ❌ Debug pip dependency conflicts 📦 One-time automated image build ❌ Manually set environment variables 📦 Declarative configuration via Compose ❌ Run background scripts step-by-step 📦 Single-command multi-service launch The New Minimal Installation Path: Now, launching your privacy-first smart home hub requires nothing more than standard container tools: # Clone the repository git clone https://github.com/travletothefurureprogramming/Edge-AI-Home-Monitoring-System # Navigate to the project root cd Edge-AI-Home-Monitoring-System # Spin up the entire system in detached mode docker compose up -d
🐳 Docker Setup: 100% Functional Docker support for the Edge-AI Home Monitoring System is now fully working end-to-end. What’s New First-Run Setup via HTML : Instead of manual configuration steps, the very first launch now opens a lightweight HTML setup page that walks through the initial configuration once (credentials, device registration basics, etc.). After this one-time run, it’s never needed again — the container remembers everything through the persisted config volumes. One Command to Rule Them All : The whole system — Flask backend, Docker container, and now the first-run setup — is launched with a single script: Windows: start.bat Linux: start.sh No more manually running docker compose , checking dependencies, or following multi-step instructions. Just run the script for your OS and the entire stack comes up ready to use. Why It Matters This closes the loop on the Docker migration from a few devlogs ago. Before, Docker removed the Python/venv/dependency headaches but still required knowing the right compose commands. Now the onboarding experience is genuinely “clone → run one script → done,” with the HTML first-run page handling the last bit of manual setup that used to require touching config files by hand.
🧪 Reliability & CI Improvements This update also focuses on improving the project’s reliability and development workflow. What’s New Added 20 Pytest test cases covering the core functionality of the system, helping verify that critical components behave correctly and reducing the risk of regressions. Configured GitHub Actions to automatically execute the entire test suite after every commit and pull request, ensuring new changes don’t break existing functionality. Why It Matters Automated testing and Continuous Integration (CI) make the project more robust, maintainable, and production-ready. Every code change is now automatically validated before it becomes part of the project, providing faster feedback during development and increasing confidence in future updates.
Ships:
I have made an Edge-AI Home Monitoring System. It is a privacy-first, edge-AI home automation hub using Linux, Flask, and real-time control to orchestrate smart devices.
Over the past few weeks, Edge-AI Home Monitoring System has evolved from a basic smart home controller into a much more capable home automation platform. New Features Added YOLO-based security monitoring Integrated Telegram bot for remote alerts and device control Added support for Tapo Smart Bulbs Added support for Tapo Smart Plugs Added support for Philips Hue devices Added support for Yeelight devices Added support for LG Smart TVs Added Remote PC Control & Monitoring Infrastructure Improvements Built a full Flask server backend Added a responsive Web Dashboard Improved setup process with automated setup scripts Reworked documentation and README Reliability Improvements Refactored multiple modules with structured exception handling Added better logging and debugging tools Improved API responses and backend stability Enhanced scalability for future device integrations The project is now much closer to becoming a complete privacy-first edge AI smart home hub capable of controlling multiple device ecosystems from a single interface.
Most smart homes are leased, not owned. Every command you send travels to a cloud you don’t control, owned by a company with interests misaligned to yours. This system proves that meaningful control of your physical space doesn’t require surrendering it to a vendor. Edge-AI Home Monitoring is a locally-governed, vendor-independent home automation platform designed to answer: can a household be sovereign over its own infrastructure?...
|
1792997513.2091985
|
1793083913.2091985
|
|
46703
|
Khuwari by @TheShovel | Stardance
|
TheShovel
|
2
|
36.0
|
609
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-31T04:08:34Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "well, since my last ship not very long ago at all, i have kept trying to polish and perfect this. I think its in a spot where im happy with it for now :3 probably the last ship for this project (well… at least until stardance ends. I am DEFINITELY gonna work on this after as well)", "repo": "https://github.com/TheShovel/khuwari", "demo": "https://theshovel.rocks/khuwari/"}, {"ship_num": 2, "ts": "2026-08-27T19:31:42Z", "hours": 32.0, "multiplier": 19.15, "payout": 609, "blessing": "neutral", "text": "Khuwari is a free and open source animation tool that generates the frames between your keyframes with machine learning. Everything runs locally in your browser, your images and projects never leave your machine. You bring the art, it brings the inbetweens.", "repo": "https://github.com/TheShovel/khuwari", "demo": "https://theshovel.rocks/khuwari/"}]...
|
[{"post_id": 58642, "ts": "202 [{"post_id": 58642, "ts": "2026-08-31T04:06:02Z", "hours": 1.2861, "text": "i gave the interpolation model some further adjustments and tweaks and stuff to get stuff as good as i possibly could. theres surprisingly a lot of stuff you can tweak internally!"}, {"post_id": 58065, "ts": "2026-08-30T12:37:51Z", "hours": 2.3178, "text": "Hello! since my first ship, i have gotten a lot of little suggestions and bug reports, so i have worked on implementing most of them, along with other stuff that i felt would be worth adding along the way: replaced the ugly svg doodles on the home page with cool epic krita drawings made by yours truly. rip to the drawing effect though… i have re written the docs to be in markdown, and then parsed through a script to automatically build the docs from those, making it a lot easier for me to update them fixed a bunch of random ui issues and inconsistencies added filter effects to layers in the drawing tool aaaand last but not least, themes! You can now choose a theme from a couple of pre-made ones in the settings. I have also went out of my way to update the github readme to say how much stuff was made by me and how much was made by ai. Hopefully that way, i dont get falsely accused of using ai again. i am still salty about that >:("}, {"post_id": 56912, "ts": "2026-08-28T22:39:15Z", "hours": 0.6606, "text": "the shipwrights keep marking my readme as ai, even after removing the little ai i used in the first place. SO HERE IS AN ENTIRE 16 MINUTE VIDEO OF ME REWRITING THE ENTIRE README, AGAIN. What a waste of my nerves bro. 3 times. 3 times my own hand written text was called ai. actually mental"}, {"post_id": 55769, "ts": "2026-08-27T19:25:43Z", "hours": 2.3383, "text": "And so, one more project comes to an end this summer, and probably my last one before school starts! Since last time, i just did a lot of testing, gave it to people to try out, implemented some QOL features and thats it. Just polish stuff :D"}, {"post_id": 54105, "ts": "2026-08-24T22:05:41Z", "hours": 6.9142, "text": "heyyyyy. long time no see but its almost over!!!! i have started to port the krita drawing tools to the app, so you can draw your frames directly in the app!!!! ooooo crazy i know. it was actually a lot of work, and its still not done, but its getting there and im quite proud of it!!! I also have added camera controls and effects! theres a separate special layer for camera keyframes, and you can animate the camera in all kinds of ways! we also have layer blending modes and soooo much more in the app itself. I have also worked on making the website less “i vibe coded this in 20 minutes” type stuff. its getting along pretty well as well! Even put animated gifs on the front page :D"}, {"post_id": 50455, "ts": "2026-08-19T16:50:50Z", "hours": 6.5889, "text": "hiiii. been a while… but ive been hard at work! i have made a website, docs, tools for automating the docs, sound, camera and sooooo much more stuff. I also started work on a krita compatible built in image editor! So that you can edit your images directly in the software easily! Yep. well id love to write more but ill be honest i dont feel like it. Look at the github commits i guess lmao oh also its now like, super fast. so fast, it can run on your phone, hell, ive been even working on a possible mobile version, but youll only see that if it actually happens hehe. ok byeeeeee!!!!"}, {"post_id": 47650, "ts": "2026-08-15T17:57:47Z", "hours": 8.2653, "text": "hey yall!!! i finally have more stuff to show! I did quite a lot of fairly difficult stuff, that im glad is now over. First of all, the ui is a lot better (still not perfect but better), now you can do interpolation on mutiple layers, and you can interpolate TRANSPARENT IMAGES. Thats right, i just made the first ever (that i heard of) actually good video interpolator that supports transparency. How i did it? Its pretty silly. I take every pixel with opacity in the current frame of that layer, and then i assign a opaque color to it. I make sure that the color that gets chosen is not a color that is in the image, to avoid breaking it… for the 2nd step! After i replace every pixel with opacity with an opaque pixel, i interpolate the frame. The interpolation model does a great job at full images. After that, i take all of the colors i assigned to the pixels i replaced, and do the reverse operation to turn them back into transparent pixels. And ta da! Its not the fastest approach, but other stuff that i tried, like masks and so on, dont seem as good. Along with that, I have also worked on some dynamic coloring tools! Right now this is still pretty basic, but the idea is: you have a layer, you place these dots on it, you choose a color, and it will fill that shape with the color. Its pretty basic, quite slow and still buggy right now but stuff is happening!!!!"}, {"post_id": 45693, "ts": "2026-08-12T10:50:51Z", "hours": 7.7056, "text": "Hiii!!! The shovel, back at it again, with another BANGER. You know how it be. always on the grind. So i was working on cutscenes for my passion project. Its a game blah blah doesnt matter. I was animating cutscenes frame by frame and then went like “man, this sure does look choppy, and not like in a cool stylized way. I wish i could easily make more inbetweens…” and then i realized, im a software developer and i can do it!!! So i thought of all those crappy “anime in 60 fps” videos on youtube. Those are ugly, and i thought… why? and realized that its because the artists didnt intend for it to be interpolated! So what if i make an animation editor, where you can drop your frames, you can set their timing and length and all that, and then you can interpolate them with full control! So this is what this project is. So far you can drag frames in, interpolate them with a small onnx interpolation model that runs locally in your browser, you can then download the frames that look bad, fix them up, drop them back in and improve the interpolation! This sounds like it wouldnt do much but it would save someone like me soooooooo much time!"}]...
|
Title: Khuwari by @TheShovel | Stardance
Devlogs: Title: Khuwari by @TheShovel | Stardance
Devlogs:
Hiii!!! The shovel, back at it again, with another BANGER. You know how it be. always on the grind. So i was working on cutscenes for my passion project. Its a game blah blah doesnt matter. I was animating cutscenes frame by frame and then went like “man, this sure does look choppy, and not like in a cool stylized way. I wish i could easily make more inbetweens…” and then i realized, im a software developer and i can do it!!! So i thought of all those crappy “anime in 60 fps” videos on youtube. Those are ugly, and i thought… why? and realized that its because the artists didnt intend for it to be interpolated! So what if i make an animation editor, where you can drop your frames, you can set their timing and length and all that, and then you can interpolate them with full control! So this is what this project is. So far you can drag frames in, interpolate them with a small onnx interpolation model that runs locally in your browser, you can then download the frames that look bad, fix them up, drop them back in and improve the interpolation! This sounds like it wouldnt do much but it would save someone like me soooooooo much time!
hey yall!!! i finally have more stuff to show! I did quite a lot of fairly difficult stuff, that im glad is now over. First of all, the ui is a lot better (still not perfect but better), now you can do interpolation on mutiple layers, and you can interpolate TRANSPARENT IMAGES. Thats right, i just made the first ever (that i heard of) actually good video interpolator that supports transparency. How i did it? Its pretty silly. I take every pixel with opacity in the current frame of that layer, and then i assign a opaque color to it. I make sure that the color that gets chosen is not a color that is in the image, to avoid breaking it… for the 2nd step! After i replace every pixel with opacity with an opaque pixel, i interpolate the frame. The interpolation model does a great job at full images. After that, i take all of the colors i assigned to the pixels i replaced, and do the reverse operation to turn them back into transparent pixels. And ta da! Its not the fastest approach, but other stuff that i tried, like masks and so on, dont seem as good. Along with that, I have also worked on some dynamic coloring tools! Right now this is still pretty basic, but the idea is: you have a layer, you place these dots on it, you choose a color, and it will fill that shape with the color. Its pretty basic, quite slow and still buggy right now but stuff is happening!!!!
hiiii. been a while… but ive been hard at work! i have made a website, docs, tools for automating the docs, sound, camera and sooooo much more stuff. I also started work on a krita compatible built in image editor! So that you can edit your images directly in the software easily! Yep. well id love to write more but ill be honest i dont feel like it. Look at the github commits i guess lmao oh also its now like, super fast. so fast, it can run on your phone, hell, ive been even working on a possible mobile version, but youll only see that if it actually happens hehe. ok byeeeeee!!!!
heyyyyy. long time no see but its almost over!!!! i have started to port the krita drawing tools to the app, so you can draw your frames directly in the app!!!! ooooo crazy i know. it was actually a lot of work, and its still not done, but its getting there and im quite proud of it!!! I also have added camera controls and effects! theres a separate special layer for camera keyframes, and you can animate the camera in all kinds of ways! we also have layer blending modes and soooo much more in the app itself. I have also worked on making the website less “i vibe coded this in 20 minutes” type stuff. its getting along pretty well as well! Even put animated gifs on the front page :D
And so, one more project comes to an end this summer, and probably my last one before school starts! Since last time, i just did a lot of testing, gave it to people to try out, implemented some QOL features and thats it. Just polish stuff :D
the shipwrights keep marking my readme as ai, even after removing the little ai i used in the first place. SO HERE IS AN ENTIRE 16 MINUTE VIDEO OF ME REWRITING THE ENTIRE README, AGAIN. What a waste of my nerves bro. 3 times. 3 times my own hand written text was called ai. actually mental
Hello! since my first ship, i have gotten a lot of little suggestions and bug reports, so i have worked on implementing most of them, along with other stuff that i felt would be worth adding along the way: replaced the ugly svg doodles on the home page with cool epic krita drawings made by yours truly. rip to the drawing effect though… i have re written the docs to be in markdown, and then parsed through a script to automatically build the docs from those, making it a lot easier for me to update them fixed a bunch of random ui issues and inconsistencies added filter effects to layers in the drawing tool aaaand last but not least, themes! You can now choose a theme from a couple of pre-made ones in the settings. I have also went out of my way to update the github readme to say how much stuff was made by me and how much was made by ai. Hopefully that way, i dont get falsely accused of using ai again. i am still salty about that >:(
i gave the interpolation model some further adjustments and tweaks and stuff to get stuff as good as i possibly could. theres surprisingly a lot of stuff you can tweak internally!
Ships:
Khuwari is a free and open source animation tool that generates the frames between your keyframes with machine learning. Everything runs locally in your browser, your images and projects never leave your machine. You bring the art, it brings the inbetweens.
well, since my last ship not very long ago at all, i have kept trying to polish and perfect this. I think its in a spot where im happy with it for now :3 probably the last ship for this project (well… at least until stardance ends. I am DEFINITELY gonna work on this after as well)...
|
1792979507.6036758
|
1793065907.6036758
|
|
19293
|
GLAP by @GameLord2011 | Stardance
|
GameLord2011
|
2
|
53.0
|
608
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-29T19:56:06Z", "hours": 19.0, "multiplier": 18.61, "payout": 360, "blessing": "neutral", "text": "I added configuration. I learned how serialization and deserialization work. I also learned how to document things. Thanks for everyone that helped with my project. Here’s an example theme to get you started with theming ([PHOTOSENSITIVE EPILEPISY WARNING]; also it doesn’t work on terminal.app because Apple is mean): [ theme ] background = \"#b8d60e\" foreground = \"#ff00ff\" controls = \"#5f4808\" playbar = \"#00fff2\"", "repo": "https://github.com/GameLord2011/GLAP", "demo": "https://github.com/GameLord2011/GLAP/releases/tag/2.0.0"}, {"ship_num": 2, "ts": "2026-08-02T17:09:50Z", "hours": 34.0, "multiplier": 7.33, "payout": 248, "blessing": "neutral", "text": "I basically made a TUI music player app in Rust, in the process learning how structs, ownership, threads, callbacks, and a bunch of other Rust things work. The hardest part was setting up the state handling. I am really proud of how this ended up.", "repo": "https://github.com/GameLord2011/GLAP", "demo": "https://github.com/GameLord2011/GLAP/releases/tag/2.0.0"}]...
|
[{"post_id": 57593, "ts": "202 [{"post_id": 57593, "ts": "2026-08-29T19:51:55Z", "hours": 0.4047, "text": "22 mins of trying and failing to convert it to sdl3. sdl2 forever"}, {"post_id": 57562, "ts": "2026-08-29T18:56:46Z", "hours": 0.8017, "text": "Added some doc comments because I plan to at some point have the audio-handling junk in a seperate crate so you can staple a frontend onto it. Okie now I can do v2.0"}, {"post_id": 56306, "ts": "2026-08-28T01:19:39Z", "hours": 2.8594, "text": "Bump version, and do a boatload of under-the-hood microoptimizations and horribly unreadable code paired with next-to-no docs."}, {"post_id": 54051, "ts": "2026-08-24T20:16:03Z", "hours": 1.1808, "text": "I did some general stability improvments and added error handling for the config (thanks @tkrl for bringing that to light)."}, {"post_id": 53252, "ts": "2026-08-23T18:09:48Z", "hours": 1.3772, "text": "I added a duration counter. It’s in seconds. No I’m not formatting it."}, {"post_id": 51227, "ts": "2026-08-20T19:17:11Z", "hours": 1.0561, "text": "Ran cargo fmt and spent an hour making sure that the playback is gapless and that my unsafe code wasn’t corrupting the memory. Also added a debug launch.json for vscode / vscodium users trying to debug it."}, {"post_id": 50713, "ts": "2026-08-20T01:29:33Z", "hours": 2.0586, "text": "Added settings page and very wisely used unsafe code to squish the sample playing loop, next up we have to address sample parsing since that can take a bit in prod. I will figure it out soon."}, {"post_id": 49982, "ts": "2026-08-19T00:27:51Z", "hours": 1.6133, "text": "Removed the about page that the ratings made apparent that no one read and started to add a settings page. I mean it has nothing at all."}, {"post_id": 48385, "ts": "2026-08-16T18:23:28Z", "hours": 1.2406, "text": "Added a lot to the README.md because it needs better documentation of features, also added file filtering."}, {"post_id": 47834, "ts": "2026-08-16T01:38:16Z", "hours": 0.7469, "text": "Made the controls better and remove a dependency. I also did some other stuff I am too tired to get into."}, {"post_id": 46089, "ts": "2026-08-13T01:40:56Z", "hours": 1.8419, "text": "The configuration update, make your own blindingly bright and eye-watering theme for GLAP today! (I did not put any restrictions on the theme, kinda almost but still might not work in terminal.app)"}, {"post_id": 45507, "ts": "2026-08-12T01:29:22Z", "hours": 2.1228, "text": "commiting now because its time for bed now. I am working on configuration. you know, custom themes, hiding the control bar, and the like. [EDIT]: IT DOESNT ACTUALLY PARSE THEM YET AND ITS BROKEN ANYWAY THIS COMMIT DOES NOT WORK"}, {"post_id": 44128, "ts": "2026-08-09T18:09:35Z", "hours": 2.0411, "text": "Fixes. I ran cargo clippy, added some v2 ideas, and generally cleaned up and optimized the code. Bumped version to v1.1.0 because the cargo overlords demand it, and also changed the controls thingy."}, {"post_id": 39016, "ts": "2026-08-01T17:53:06Z", "hours": 1.4003, "text": "I basically added rewinding and fast-forwarding. I also made the button unfocus with the window. I will ship soon™️"}, {"post_id": 38312, "ts": "2026-07-31T17:07:26Z", "hours": 0.5789, "text": "Probably the last devlog before Ship 1; I removed volume from the player because it just ate up memory and cpu cycles, and ran cargo fmt and cargo clippy for good measure. It’s pretty much done now."}, {"post_id": 37747, "ts": "2026-07-30T17:37:15Z", "hours": 1.4067, "text": "I’m almost done. I programmed in controls and repeating a folder of music (so basically playlists). It just repeats it in the displayed order so keep that in mind."}, {"post_id": 37205, "ts": "2026-07-29T19:03:10Z", "hours": 2.23, "text": "I am working on controls for the UI and them functioning. Making the elements focus right will be a pain. Well at least I’m in the home stretch. Unless of course I choose to split the backend of a crate… Meh I probably won’t do it."}, {"post_id": 36563, "ts": "2026-07-28T19:20:57Z", "hours": 2.0053, "text": "UI!!!!! I can use this kind of it still needs to be able to pause but it can resonably be considered an audio player now! This is so tiring but at least I can say that I’ve made something now."}, {"post_id": 35967, "ts": "2026-07-27T19:11:42Z", "hours": 1.9819, "text": "File explorer, playing thing from music folder, another archetecture redo, and a whole lot more."}, {"post_id": 35401, "ts": "2026-07-26T19:39:47Z", "hours": 0.6528, "text": "Async is actually async now."}, {"post_id": 35325, "ts": "2026-07-26T17:21:21Z", "hours": 1.0361, "text": "It kind of works… you need a file named sans.ogg in you music folder but nontheless it works. I still need a proper ui tho lol."}, {"post_id": 34766, "ts": "2026-07-25T19:07:01Z", "hours": 0.7131, "text": "The UI kind of works now, working on writing the about page. I still need to write the player code and page and what not, I will delegate this to a helper thread."}, {"post_id": 34732, "ts": "2026-07-25T18:04:40Z", "hours": 2.2267, "text": "Devlogging now because an electrical storm is nearby and I need to turn off my pc; basically just started to work on the ui. This one is not going to work so don’t build ."}, {"post_id": 34367, "ts": "2026-07-25T00:43:15Z", "hours": 0.8956, "text": "It plays now. I figure out gow to use the lock helper so I don’t have to screw around with mutexes and ownership and the like and still pause. Yay."}, {"post_id": 34199, "ts": "2026-07-24T18:34:35Z", "hours": 1.8939, "text": "I seperated some stuff into other files and started on the ui stuff with some basic boilerplate. It now doesn’t work again because I need to figure out how to use mutexes."}, {"post_id": 33079, "ts": "2026-07-22T17:40:50Z", "hours": 0.5153, "text": "Some smol optimizations"}, {"post_id": 33037, "ts": "2026-07-22T16:25:05Z", "hours": 0.5217, "text": "Mess around with feature flags and add some stuff to the README."}, {"post_id": 32442, "ts": "2026-07-21T17:12:04Z", "hours": 0.7594, "text": "It functions now. Yaey. Symphonia is complicated. I can now play songs with this. Next up: I struggle with some sort of UI thing to make a UI for it."}, {"post_id": 31883, "ts": "2026-07-20T17:09:26Z", "hours": 1.7542, "text": "Switched to Symphonia because FLAC audio is broken in Creak. At the moment the new implementation doesn’t function…"}, {"post_id": 31440, "ts": "2026-07-19T20:12:31Z", "hours": 0.5278, "text": "Made it play for the length of the song, added some logging, and a page enum."}, {"post_id": 30979, "ts": "2026-07-19T00:13:56Z", "hours": 0.4964, "text": "Rewrite the callback and run cargo fmt."}, {"post_id": 30872, "ts": "2026-07-18T20:31:03Z", "hours": 0.7356, "text": "It almost works, then I will work on a ui-ish thing."}, {"post_id": 30254, "ts": "2026-07-17T17:58:58Z", "hours": 1.135, "text": "Basically started to rewrite the entire project. TL;DR the Midi spec is a horribly built spec by modern standards, so I had the bright idea of make smth new. (I HAD SPECIFIC PERMISSION FROM RUPNIL TO DO THIS PLEASE DONT SLIME ME HERES A LINK TO THE THREAD FOR PROOF: https://hackclub.slack.com/archives/C0APH2MMHH7/p1784221925675859 )"}, {"post_id": 27754, "ts": "2026-07-13T16:16:20Z", "hours": 0.4494, "text": "We playin spot the difference with indices now."}, {"post_id": 26674, "ts": "2026-07-11T16:41:42Z", "hours": 0.7131, "text": "I re-implemented VLQ’s as a struct because midi is meen"}, {"post_id": 24225, "ts": "2026-07-07T17:25:21Z", "hours": 0.7889, "text": "I added some more data types, still cant parse yet tho"}, {"post_id": 21599, "ts": "2026-07-03T17:12:03Z", "hours": 0.4419, "text": "Apparently this is about to get more compicated…"}, {"post_id": 20957, "ts": "2026-07-02T18:08:22Z", "hours": 1.4392, "text": "Added some debug logging to assist with debugging!"}, {"post_id": 18492, "ts": "2026-06-29T17:34:54Z", "hours": 0.9272, "text": "Made some stuff make more sense to the programmer."}, {"post_id": 17757, "ts": "2026-06-28T17:54:57Z", "hours": 0.8472, "text": "I corrected indexing."}, {"post_id": 17056, "ts": "2026-06-27T18:10:41Z", "hours": 1.2067, "text": "More parsing. None of it actually works for now."}, {"post_id": 16388, "ts": "2026-06-26T17:47:00Z", "hours": 1.0394, "text": "I am parsing VLQ’s now!"}, {"post_id": 14500, "ts": "2026-06-23T17:20:18Z", "hours": 0.9022, "text": "I added some parsing for validity testing. The dumb part is that I still can’t parse messages fully because the MIDI standard can’t just use u32’s noooo they have to be soooooo fancy and use variable length quantities that are a headache to parse because they decided to do junk with raw bits for no reason other than to give midi player dev’s headaches and save a whopping 200 bytes in the file I’m working with (the song is straight fire tho). Oh yea I also added an ImHex project file bcs I’m not working with the MIDI docs because those get way to technical."}, {"post_id": 12669, "ts": "2026-06-20T18:12:02Z", "hours": 0.5386, "text": "I rewrote parsing to use structs because structs are cool."}, {"post_id": 10810, "ts": "2026-06-17T18:48:14Z", "hours": 0.5128, "text": "Added some rudimentary parsing. None of it does anything rn but it will at some point."}, {"post_id": 9390, "ts": "2026-06-15T18:51:51Z", "hours": 0.6078, "text": "Initalized project. TODO: Everything."}]...
|
Title: GLAP by @GameLord2011 | Stardance
Devlogs: Title: GLAP by @GameLord2011 | Stardance
Devlogs:
Initalized project. TODO: Everything.
Added some rudimentary parsing. None of it does anything rn but it will at some point.
I rewrote parsing to use structs because structs are cool.
I added some parsing for validity testing. The dumb part is that I still can’t parse messages fully because the MIDI standard can’t just use u32’s noooo they have to be soooooo fancy and use variable length quantities that are a headache to parse because they decided to do junk with raw bits for no reason other than to give midi player dev’s headaches and save a whopping 200 bytes in the file I’m working with (the song is straight fire tho). Oh yea I also added an ImHex project file bcs I’m not working with the MIDI docs because those get way to technical.
I am parsing VLQ’s now!
More parsing. None of it actually works for now.
I corrected indexing.
Made some stuff make more sense to the programmer.
Added some debug logging to assist with debugging!
Apparently this is about to get more compicated…
I added some more data types, still cant parse yet tho
I re-implemented VLQ’s as a struct because midi is meen
We playin spot the difference with indices now.
Basically started to rewrite the entire project. TL;DR the Midi spec is a horribly built spec by modern standards, so I had the bright idea of make smth new. (I HAD SPECIFIC PERMISSION FROM RUPNIL TO DO THIS PLEASE DONT SLIME ME HERES A LINK TO THE THREAD FOR PROOF: https://hackclub.slack.com/archives/C0APH2MMHH7/p1784221925675859 )
It almost works, then I will work on a ui-ish thing.
Rewrite the callback and run cargo fmt.
Made it play for the length of the song, added some logging, and a page enum.
Switched to Symphonia because FLAC audio is broken in Creak. At the moment the new implementation doesn’t function…
It functions now. Yaey. Symphonia is complicated. I can now play songs with this. Next up: I struggle with some sort of UI thing to make a UI for it.
Mess around with feature flags and add some stuff to the README.
Some smol optimizations
I seperated some stuff into other files and started on the ui stuff with some basic boilerplate. It now doesn’t work again because I need to figure out how to use mutexes.
It plays now. I figure out gow to use the lock helper so I don’t have to screw around with mutexes and ownership and the like and still pause. Yay.
Devlogging now because an electrical storm is nearby and I need to turn off my pc; basically just started to work on the ui. This one is not going to work so don’t build .
The UI kind of works now, working on writing the about page. I still need to write the player code and page and what not, I will delegate this to a helper thread.
It kind of works… you need a file named sans.ogg in you music folder but nontheless it works. I still need a proper ui tho lol.
Async is actually async now.
File explorer, playing thing from music folder, another archetecture redo, and a whole lot more.
UI!!!!! I can use this kind of it still needs to be able to pause but it can resonably be considered an audio player now! This is so tiring but at least I can say that I’ve made something now.
I am working on controls for the UI and them functioning. Making the elements focus right will be a pain. Well at least I’m in the home stretch. Unless of course I choose to split the backend of a crate… Meh I probably won’t do it.
I’m almost done. I programmed in controls and repeating a folder of music (so basically playlists). It just repeats it in the displayed order so keep that in mind.
Probably the last devlog before Ship 1; I removed volume from the player because it just ate up memory and cpu cycles, and ran cargo fmt and cargo clippy for good measure. It’s pretty much done now.
I basically added rewinding and fast-forwarding. I also made the button unfocus with the window. I will ship soon™️
Fixes. I ran cargo clippy, added some v2 ideas, and generally cleaned up and optimized the code. Bumped version to v1.1.0 because the cargo overlords demand it, and also changed the controls thingy.
commiting now because its time for bed now. I am working on configuration. you know, custom themes, hiding the control bar, and the like. [EDIT]: IT DOESNT ACTUALLY PARSE THEM YET AND ITS BROKEN ANYWAY THIS COMMIT DOES NOT WORK
The configuration update, make your own blindingly bright and eye-watering theme for GLAP today! (I did not put any restrictions on the theme, kinda almost but still might not work in terminal.app)
Made the controls better and remove a dependency. I also did some other stuff I am too tired to get into.
Added a lot to the README.md because it needs better documentation of features, also added file filtering.
Removed the about page that the ratings made apparent that no one read and started to add a settings page. I mean it has nothing at all.
Added settings page and very wisely used unsafe code to squish the sample playing loop, next up we have to address sample parsing since that can take a bit in prod. I will figure it out soon.
Ran cargo fmt and spent an hour making sure that the playback is gapless and that my unsafe code wasn’t corrupting the memory. Also added a debug launch.json for vscode / vscodium users trying to debug it.
I added a duration counter. It’s in seconds. No I’m not formatting it.
I did some general stability improvments and added error handling for the config (thanks @tkrl for bringing that to light).
Bump version, and do a boatload of under-the-hood microoptimizations and horribly unreadable code paired with next-to-no docs.
Added some doc comments because I plan to at some point have the audio-handling junk in a seperate crate so you can staple a frontend onto it. Okie now I can do v2.0
22 mins of trying and failing to convert it to sdl3. sdl2 forever
Ships:
I basically made a TUI music player app in Rust, in the process learning how structs, ownership, threads, callbacks, and a bunch of other Rust things work. The hardest part was setting up the state handling. I am really proud of how this ended up.
I added configuration. I learned how serialization and deserialization work. I also learned how to document things. Thanks for everyone that helped with my project. Here’s an example theme to get you started with theming ([PHOTOSENSITIVE EPILEPISY WARNING]; also it doesn’t work on terminal.app because Apple is mean): [ theme ] background = "#b8d60e" foreground = "#ff00ff" controls = "#5f4808" playbar = "#00fff2"...
|
1792986819.7954512
|
1793073219.7954512
|
|
5445
|
UpRevise by @porgsrpogs | Stardance
|
porgsrpogs
|
1
|
54.0
|
606
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-28T21:58:32Z", "hours": 54.0, "multiplier": 11.23, "payout": 606, "blessing": "neutral", "text": "I made an AI revision website that learns what question formats help the user improve the most. Having struggled to find any modules online that could be used for my specific case it was a struggle creating the right file to optimise the weights for each question format. I’m proud to have stuck with this project for such a large amount of time and I’m happy with the great structures and practices I’ve maintained. The main thing anyone should know BEFORE REVIEWING MY SITE is that this project should only be reviewed and tested on a DESKTOP/LAPTOP as small screens can hinder the website’s full experience.", "repo": "https://github.com/POrGSrPOGS/ai-revision-website", "demo": "https://porgsrpogs.hackclub.app/"}]...
|
[{"post_id": 36665, "ts": "202 [{"post_id": 36665, "ts": "2026-07-28T21:25:54Z", "hours": 1.4619, "text": "Devlog 14… Preparing to ship Updated README Updated questions to be space themed To view the website, Click Here"}, {"post_id": 34257, "ts": "2026-07-24T20:00:46Z", "hours": 3.8211, "text": "– Devlog 13 (AI UPDATE) Updated sessionShortcuts to use a factory function pattern which allows me to create an object using request as a parameter once, and then access session data easily without having to submit request as a parameter each time. e.g const questionId = sessionShortcuts.getCurrentQuestionId() no request parameter is required. Updated AI logic to track what the ai’s suggestion was for each answer and see how that suggestion affected improvement, previously the AI would look at the most recent proposal and credit that the improvement, the new logic tracks the ai’s predicted optimum ratio for each question and tracks improvement individually rather than the last system which would use gross improvement. To view the website, Click Here"}, {"post_id": 32524, "ts": "2026-07-21T19:16:45Z", "hours": 5.1464, "text": "Devlog 12 What is UpRevise? It’s a revision website which adapts to how the user learns best to improve efficiency when studying Changelog: General refactoring Added sessionShortcuts which includes helper functions involving session data Code now uses sessionShortcuts to get data rather than hardcoding session data keys throughout multiple files Fixed bug where the same question would appear multiple times in a row Fixed normaliser function so all punctuation is replaced from answers before comparing to correct answers Updated short answer and mark feedback styling To view the website, click here"}, {"post_id": 20767, "ts": "2026-07-02T13:45:37Z", "hours": 3.3989, "text": "Devlog 11 Recap: A revision website that uses AI to adapt to the most effective revision methods, personalised for each user Changelog: States for finding the best combination of question formats are now displayed via ratio format and is updated for every question answered Fixed marking logic for GapFill questions which would cause false negatives Switched the question topics for more general ones to give a better experience for anyone who wants to try it out VIEW SITE NOTE: Questions must be answered multiple times before the ratios can adapt"}, {"post_id": 17159, "ts": "2026-06-27T21:03:00Z", "hours": 9.4075, "text": "Devlog 10 Project: AI focused revision website to learn how you learn, and use that to improve revision Changelog: Tested two main AI models, used basic versions of Bayesian Bandits and Reinforcement learning Reinforcement learning performed the best and was chosen to be used as the model to learn a user’s preference of question formats (e.g GapFill, MultipleChoice, ShortAnswer) Add reward file for converting variables to a 0-1 score so it can be easily interpreted by ai models Data for models is saved in session data using express as a temporary fix, I plan to move data including past marks on questions and AI weights to a database further down the line. Media: Screenshot of the state and proposal of the reinforcement learning model after answering a few questions where only ShortAnswer question formats were answered correctly and the other formats were purposely answered wrong VIEW SITE"}, {"post_id": 15631, "ts": "2026-06-25T12:54:12Z", "hours": 0.5697, "text": "(Mini) Devlog 9 Project Recap: A website to help students revise faster and more efficiently using simple but effective AI Changelog: Fixed some of questionsBank.json because the mark points were written incorrectly Added colour coding to help users understand where they went wrong/right in their answer TRY OUT MY SITE"}, {"post_id": 15267, "ts": "2026-06-24T19:57:41Z", "hours": 2.7622, "text": "Devlog 8 Project Aim: Build a revision website that uses machine learning to help students learn new topics even faster Changelog: Users now receive additional feedback which specifies which of the “keywords” in their answers were correct, incorrect or ignored (Due to repetition etc) Updated marking logic so a user cannot gain multiple marks for the same marking point (E.g NOT getting 2 marks for saying “4 and four” in response to “2 + 2”) Reinforced old logic that had been lost to prevent keywords in an answer being detected as filler words (Such as “and” etc) VIEW SITE"}, {"post_id": 11989, "ts": "2026-06-19T15:51:11Z", "hours": 1.5108, "text": "Devlog 7 Project description: An ai-focused revision website to improve the efficiency in learning for students Changelog Edited structure of questions in questionBank.json to allow for synonym answers Reconfigured marking logic to suit new structure Reconstructed the mark feedback visuals to clearly separate each marking point CLICK TO TRY SITE"}, {"post_id": 10538, "ts": "2026-06-17T09:33:53Z", "hours": 2.6572, "text": "Devlog 6 RECAP: UpRevise is a revision website that will eventually use machine learning to adapt to how different students learn and progress fastest Changelog Added fill in the blank/gap question types Fixed marking logic causing answers to be case sensitive Debugged some things like input boxes being too small CLICK TO VIEW SITE"}, {"post_id": 10073, "ts": "2026-06-16T17:31:55Z", "hours": 5.7492, "text": "Devlog 5 RECAP: A revision website that aims to adapt to how a user learns to help them learn faster [Machine learning hasn’t been added YET] Changelog: Added the ability to select multiple options at once in multiple choice Updated marking logic to be more accurate when marking answers (Like punishing for extra, incorrect answers) Fixed some minor ui stuff like centering of feedback text Made it easier to add more question formats by giving more control to jsx files managing how different question formats display TLDR: Added multi-select to multiple choice questions and made the system mark more accurately CLICK TO TRY SITE"}, {"post_id": 7065, "ts": "2026-06-11T20:42:53Z", "hours": 5.1311, "text": "Devlog 4 Recap: UpRevise is a website for revising and will in the future, hopefully, use machine learning to help students learn more efficiently Changelog The enter key can now be used to easily cycle through questions instead of manually clicking submit and next Responses are colour coded, varying the visuals to reflect full marks, partial marks, and no marks. There is now a system for adding different question formats, currently the website includes: Short Answers and Multiple Choice. Refactored some of home.jsx so api calls are handled in client/src/services HIGHLIGHT: Made an easily expandable system to add multiple question formats like text input answers and multiple choice questions CLICK TO VIEW THE SITE"}, {"post_id": 5746, "ts": "2026-06-09T17:25:50Z", "hours": 8.2725, "text": "Devlog 3 Recap: Revision website to try and increase efficiency in learning so students can carry on spending the same amount of time revising, but with better results. Changelog Refactored loads of my Home.jsx and some other files to become more modular Switched to tailwindcss Updated UI Removed some unnecessary things like dark/light mode to focus on functionality rather than visuals Reduced the amount of react states I was using by like 50% whilst maintaining the same functionality TLDR: I focused mostly on improving my structure so I can greatly increase my future rates of progress Click To View The Site!"}, {"post_id": 2715, "ts": "2026-06-05T13:17:39Z", "hours": 1.9461, "text": "DevLog #2 About UpRevise - A revision website that will focus on adapting to how the user learns best Changes Shows you some of the answers you could have given to get full marks. Site is now publicly accessible thanks to Nest Updated logging and API to make debugging easier Access site: View Site Constructive criticism IS APPRECIATED"}, {"post_id": 1692, "ts": "2026-06-03T20:55:32Z", "hours": 2.3997, "text": "Devlog #1 Introduction For several years I’ve been exploring programming and, more specifically, machine learning. After a miserable attempt where Claude became the main contributor, I have decided to start from scratch and begin making my ai powered revision website. What is the aim? Reducing wasted time - Everyone learns differently, the intent is to make a website that can adapt to whoever is using it. Progress so far (Humble beginnings) Since the start of June I’ve: Polished a simple question prompting and answering system Created an easily expandable filtering system which currently uses subjects and topics Added sessions to track user data such as current question to create a server authoritative secure system. Attachments: A demo of answering questions with a filter of Subject: General and Topic: Academic"}]...
|
Title: UpRevise by @porgsrpogs | Stardance
Devlog Title: UpRevise by @porgsrpogs | Stardance
Devlogs:
Devlog #1 Introduction For several years I’ve been exploring programming and, more specifically, machine learning. After a miserable attempt where Claude became the main contributor, I have decided to start from scratch and begin making my ai powered revision website. What is the aim? Reducing wasted time - Everyone learns differently, the intent is to make a website that can adapt to whoever is using it. Progress so far (Humble beginnings) Since the start of June I’ve: Polished a simple question prompting and answering system Created an easily expandable filtering system which currently uses subjects and topics Added sessions to track user data such as current question to create a server authoritative secure system. Attachments: A demo of answering questions with a filter of Subject: General and Topic: Academic
DevLog #2 About UpRevise - A revision website that will focus on adapting to how the user learns best Changes Shows you some of the answers you could have given to get full marks. Site is now publicly accessible thanks to Nest Updated logging and API to make debugging easier Access site: View Site Constructive criticism IS APPRECIATED
Devlog 3 Recap: Revision website to try and increase efficiency in learning so students can carry on spending the same amount of time revising, but with better results. Changelog Refactored loads of my Home.jsx and some other files to become more modular Switched to tailwindcss Updated UI Removed some unnecessary things like dark/light mode to focus on functionality rather than visuals Reduced the amount of react states I was using by like 50% whilst maintaining the same functionality TLDR: I focused mostly on improving my structure so I can greatly increase my future rates of progress Click To View The Site!
Devlog 4 Recap: UpRevise is a website for revising and will in the future, hopefully, use machine learning to help students learn more efficiently Changelog The enter key can now be used to easily cycle through questions instead of manually clicking submit and next Responses are colour coded, varying the visuals to reflect full marks, partial marks, and no marks. There is now a system for adding different question formats, currently the website includes: Short Answers and Multiple Choice. Refactored some of home.jsx so api calls are handled in client/src/services HIGHLIGHT: Made an easily expandable system to add multiple question formats like text input answers and multiple choice questions CLICK TO VIEW THE SITE
Devlog 5 RECAP: A revision website that aims to adapt to how a user learns to help them learn faster [Machine learning hasn’t been added YET] Changelog: Added the ability to select multiple options at once in multiple choice Updated marking logic to be more accurate when marking answers (Like punishing for extra, incorrect answers) Fixed some minor ui stuff like centering of feedback text Made it easier to add more question formats by giving more control to jsx files managing how different question formats display TLDR: Added multi-select to multiple choice questions and made the system mark more accurately CLICK TO TRY SITE
Devlog 6 RECAP: UpRevise is a revision website that will eventually use machine learning to adapt to how different students learn and progress fastest Changelog Added fill in the blank/gap question types Fixed marking logic causing answers to be case sensitive Debugged some things like input boxes being too small CLICK TO VIEW SITE
Devlog 7 Project description: An ai-focused revision website to improve the efficiency in learning for students Changelog Edited structure of questions in questionBank.json to allow for synonym answers Reconfigured marking logic to suit new structure Reconstructed the mark feedback visuals to clearly separate each marking point CLICK TO TRY SITE
Devlog 8 Project Aim: Build a revision website that uses machine learning to help students learn new topics even faster Changelog: Users now receive additional feedback which specifies which of the “keywords” in their answers were correct, incorrect or ignored (Due to repetition etc) Updated marking logic so a user cannot gain multiple marks for the same marking point (E.g NOT getting 2 marks for saying “4 and four” in response to “2 + 2”) Reinforced old logic that had been lost to prevent keywords in an answer being detected as filler words (Such as “and” etc) VIEW SITE
(Mini) Devlog 9 Project Recap: A website to help students revise faster and more efficiently using simple but effective AI Changelog: Fixed some of questionsBank.json because the mark points were written incorrectly Added colour coding to help users understand where they went wrong/right in their answer TRY OUT MY SITE
Devlog 10 Project: AI focused revision website to learn how you learn, and use that to improve revision Changelog: Tested two main AI models, used basic versions of Bayesian Bandits and Reinforcement learning Reinforcement learning performed the best and was chosen to be used as the model to learn a user’s preference of question formats (e.g GapFill, MultipleChoice, ShortAnswer) Add reward file for converting variables to a 0-1 score so it can be easily interpreted by ai models Data for models is saved in session data using express as a temporary fix, I plan to move data including past marks on questions and AI weights to a database further down the line. Media: Screenshot of the state and proposal of the reinforcement learning model after answering a few questions where only ShortAnswer question formats were answered correctly and the other formats were purposely answered wrong VIEW SITE
Devlog 11 Recap: A revision website that uses AI to adapt to the most effective revision methods, personalised for each user Changelog: States for finding the best combination of question formats are now displayed via ratio format and is updated for every question answered Fixed marking logic for GapFill questions which would cause false negatives Switched the question topics for more general ones to give a better experience for anyone who wants to try it out VIEW SITE NOTE: Questions must be answered multiple times before the ratios can adapt
Devlog 12 What is UpRevise? It’s a revision website which adapts to how the user learns best to improve efficiency when studying Changelog: General refactoring Added sessionShortcuts which includes helper functions involving session data Code now uses sessionShortcuts to get data rather than hardcoding session data keys throughout multiple files Fixed bug where the same question would appear multiple times in a row Fixed normaliser function so all punctuation is replaced from answers before comparing to correct answers Updated short answer and mark feedback styling To view the website, click here
– Devlog 13 (AI UPDATE) Updated sessionShortcuts to use a factory function pattern which allows me to create an object using request as a parameter once, and then access session data easily without having to submit request as a parameter each time. e.g const questionId = sessionShortcuts.getCurrentQuestionId() no request parameter is required. Updated AI logic to track what the ai’s suggestion was for each answer and see how that suggestion affected improvement, previously the AI would look at the most recent proposal and credit that the improvement, the new logic tracks the ai’s predicted optimum ratio for each question and tracks improvement individually rather than the last system which would use gross improvement. To view the website, Click Here
Devlog 14… Preparing to ship Updated README Updated questions to be space themed To view the website, Click Here
Ships:
I made an AI revision website that learns what question formats help the user improve the most. Having struggled to find any modules online that could be used for my specific case it was a struggle creating the right file to optimise the weights for each question format. I’m proud to have stuck with this project for such a large amount of time and I’m happy with the great structures and practices I’ve maintained. The main thing anyone should know BEFORE REVIEWING MY SITE is that this project should only be reviewed and tested on a DESKTOP/LAPTOP as small screens can hinder the website’s full experience....
|
1792975725.1264439
|
1793062125.1264439
|
|
10257
|
Self hosted minecraft hosting service by @sometime Self hosted minecraft hosting service by @sometimesmycodeworks | Stardance...
|
sometimesmycodeworks
|
1
|
58.72
|
605
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-23T18:57:02Z", "hours": 57.0, "multiplier": 12.09, "payout": 605, "blessing": "neutral", "text": "I made a minecraft server hosting service, which shuts down servers automatically that are not in use (and starts them up upon attempted connection) to save resources. It is slow due to the hardware, but I promise that the loading screen usually is not infinite (1min long usually).", "repo": "https://github.com/imakebloatedcode/minecraft-as-a-service", "demo": "https://mc.bloated.dev"}]...
|
[{"post_id": 18404, "ts": "202 [{"post_id": 18404, "ts": "2026-06-29T15:20:46Z", "hours": 0.4886, "text": "Docker now allows more than 10 seconds for the servers to be saved, the MOTD now saves even if no formatting is applied, and it reloads the configuration when switching from and to the server configuration tile"}, {"post_id": 17741, "ts": "2026-06-28T17:39:11Z", "hours": 0.4492, "text": "Devlog - REVIEWERS READ THIS: before rejecting, read this thread: https://hackclub.slack.com/archives/C099P9FQQ91/p1782581500326529"}, {"post_id": 14655, "ts": "2026-06-23T20:48:28Z", "hours": 0.7839, "text": "Added license, updated readme, allowed viewing server configuration without authorization, fixed the UI for users who do (removed save button and irrelevant config groups), renamed the routes for some pages (/dashboard/servers => /dashboard/my-servers. /dashboard/all-servers => /dashboard/servers), and hid the account menu for non-logged-in users."}, {"post_id": 14471, "ts": "2026-06-23T16:33:59Z", "hours": 0.8519, "text": "Final touch ups: added a favicon, fixed a double-mount bug in the server join callback, and also prevented double-registration of accounts (which result in duplicate DB entries)"}, {"post_id": 14064, "ts": "2026-06-23T01:24:09Z", "hours": 3.2131, "text": "The server now automatically shuts down servers with no players after 5 minutes (via checking if any players are connected to the proxy, not by querying the backend server) and starts them on players trying to join. Viaversion has been uninstalled from velocity (the proxy), as it was giving protocol errors intermittently for newly started servers. I now only have viaversion in front of the limbo server, which was not having issues, with the addition of viabackwards to allow old versions. Installing that to the limbo server was required as all minecraft versions connect to it, and limbo only implements support for one nativly."}, {"post_id": 13785, "ts": "2026-06-22T16:25:13Z", "hours": 1.9106, "text": "Fixed the api endpoints (they did not delete the S3 data) for deleting servers and accounts and added the button to delete servers"}, {"post_id": 12823, "ts": "2026-06-21T00:06:11Z", "hours": 5.3086, "text": "It now keeps track of the players that are connected (this required rewriting the java code to use a raw tcp stream instead of http for events to allow bidirectional communication)"}, {"post_id": 12275, "ts": "2026-06-20T01:25:17Z", "hours": 12.3925, "text": "Added a terminal feature to allow using the console of the minecraft server and cleaned up the codebase to the point of being somewhat presentable (removed the unused old code from the pre-stardance version as it is been largely rewritten)"}, {"post_id": 10265, "ts": "2026-06-16T22:09:20Z", "hours": 10.5117, "text": "The server now actually runs fully, it saves worlds to any S3-like server and allows downloading and uploading custom ones. It autosaves the worlds once every 5 minutes and when the server is shut down, and restarts the servers when the configuration is changed. It does not yet allow you to add operators to the server."}, {"post_id": 9246, "ts": "2026-06-15T15:05:13Z", "hours": 6.0061, "text": "Implemented Backend api created The web UI can save to it"}, {"post_id": 8372, "ts": "2026-06-13T22:29:29Z", "hours": 2.8611, "text": "Added server configuration UI autogeneration. It automatically shows only the configuration options supported by the server, requiring me to only implement the backend handler and add the option to the list of field names."}, {"post_id": 7541, "ts": "2026-06-12T16:18:51Z", "hours": 14.1831, "text": "Got basic functionality, with primitive web ui and nearly complete backend. The code is too messy to use, and I will soon rewrite most of it."}]...
|
Title: Self hosted minecraft hosting service by @s Title: Self hosted minecraft hosting service by @sometimesmycodeworks | Stardance
Devlogs:
Got basic functionality, with primitive web ui and nearly complete backend. The code is too messy to use, and I will soon rewrite most of it.
Added server configuration UI autogeneration. It automatically shows only the configuration options supported by the server, requiring me to only implement the backend handler and add the option to the list of field names.
Implemented Backend api created The web UI can save to it
The server now actually runs fully, it saves worlds to any S3-like server and allows downloading and uploading custom ones. It autosaves the worlds once every 5 minutes and when the server is shut down, and restarts the servers when the configuration is changed. It does not yet allow you to add operators to the server.
Added a terminal feature to allow using the console of the minecraft server and cleaned up the codebase to the point of being somewhat presentable (removed the unused old code from the pre-stardance version as it is been largely rewritten)
It now keeps track of the players that are connected (this required rewriting the java code to use a raw tcp stream instead of http for events to allow bidirectional communication)
Fixed the api endpoints (they did not delete the S3 data) for deleting servers and accounts and added the button to delete servers
The server now automatically shuts down servers with no players after 5 minutes (via checking if any players are connected to the proxy, not by querying the backend server) and starts them on players trying to join. Viaversion has been uninstalled from velocity (the proxy), as it was giving protocol errors intermittently for newly started servers. I now only have viaversion in front of the limbo server, which was not having issues, with the addition of viabackwards to allow old versions. Installing that to the limbo server was required as all minecraft versions connect to it, and limbo only implements support for one nativly.
Final touch ups: added a favicon, fixed a double-mount bug in the server join callback, and also prevented double-registration of accounts (which result in duplicate DB entries)
Added license, updated readme, allowed viewing server configuration without authorization, fixed the UI for users who do (removed save button and irrelevant config groups), renamed the routes for some pages (/dashboard/servers => /dashboard/my-servers. /dashboard/all-servers => /dashboard/servers), and hid the account menu for non-logged-in users.
Devlog - REVIEWERS READ THIS: before rejecting, read this thread: https://hackclub.slack.com/archives/C099P9FQQ91/p1782581500326529
Docker now allows more than 10 seconds for the servers to be saved, the MOTD now saves even if no formatting is applied, and it reloads the configuration when switching from and to the server configuration tile
Ships:
I made a minecraft server hosting service, which shuts down servers automatically that are not in use (and starts them up upon attempted connection) to save resources. It is slow due to the hardware, but I promise that the loading screen usually is not infinite (1min long usually)....
|
1792979302.8690984
|
1793065702.8690984
|
|
3252
|
Movieslay Emerald by @Gavin | Stardance
|
Gavin
|
2
|
42.0
|
598
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-12T19:51:34Z", "hours": 14.0, "multiplier": 16.53, "payout": 226, "blessing": "neutral", "text": "Watch all your favorite media free today with Movieslay. Unlike many other shady platforms, Movieslay guarantees zero ads or popups, hundreds of stream sources aggregated across a network of providers, and raw direct downloads.", "repo": "https://gitlab.com/gavingogaming/movieslay-emerald-temp", "demo": "https://movieslay.com/"}, {"ship_num": 2, "ts": "2026-07-21T01:58:32Z", "hours": 28.0, "multiplier": 13.86, "payout": 372, "blessing": "neutral", "text": "Movieslay is an all-in-one content streaming platform - bundled with integrations for 30+ providers & partners, and completely ad-free & open source.", "repo": "https://gitlab.com/gavingogaming/movieslay-emerald-temp", "demo": "https://movieslay.com/"}]...
|
[{"post_id": 66855, "ts": "202 [{"post_id": 66855, "ts": "2026-09-12T19:48:05Z", "hours": 3.5042, "text": "Completely re-did stream checker. Sources for a particular TV or Movie are now ran through a robust content validator that ensures each link is playable & has the correct content, or filters it to Backup (playable but bad content) or Invalid (non playable, hidden by default). Each source now shows much more info as well, as the checker returns the media type (HLS or MP4), quality (4k to 240p), resolution, and duration. Picking exactly which source you want is much easier now. With these changes, each piece of media is nearly guaranteed to load on the first try."}, {"post_id": 50017, "ts": "2026-08-19T01:23:22Z", "hours": 1.9758, "text": "Made content streams in HLS (.m3u8) format only run through HLS.js if on a non-Apple system as Apple devices (and AirPlay) support .m3u8 playlists directly. Also added a dedicated cast button for content casting with Google Cast SDK, AirPlay/WebKit, and native device casting. Finally, added an exclusive page at /exclusives/btsv for the ‘leaked’ unfinished Beyond the Spider Verse trailer."}, {"post_id": 43512, "ts": "2026-08-08T20:34:42Z", "hours": 0.2586, "text": "Minor UI fixes - expanded the video player to take up all available height (this works now that the footer/warning banner is moved to the external players menu), and fixed padding on page content."}, {"post_id": 42428, "ts": "2026-08-07T03:47:58Z", "hours": 0.7892, "text": "TMDB collections support! This feature allows movies in a series (ex. Spider-Verse trilogy) to have a next/previous button similar to TV shows. If you’re trying to bingewatch a series of movies this feature can help you out :) Currently just shows the top TMDB collection (based on a movie’s ‘belongs_to_collection’ tag)"}, {"post_id": 40440, "ts": "2026-08-03T23:13:46Z", "hours": 1.7847, "text": "Updated UI for info displays on content pages as well as overall padding and rounding"}, {"post_id": 37939, "ts": "2026-07-30T23:34:40Z", "hours": 3.15, "text": "Worked on tons of brand new sources (including VylaSDK), moved 3rd-party players to a separate menu, fixed tons of player bugs"}, {"post_id": 32829, "ts": "2026-07-22T07:06:42Z", "hours": 2.2064, "text": "added live cable TV networks"}, {"post_id": 32119, "ts": "2026-07-21T01:53:46Z", "hours": 1.2044, "text": "Started work on Movieslay Pley for watchOS (project Odys). Pley is an app suite to let you access direct content in native ways without the regular Movieslay player & ui. Attached screenshots are directly from watchOS on a Watch SE (1st gen)."}, {"post_id": 31702, "ts": "2026-07-20T09:58:15Z", "hours": 3.2036, "text": "With the addition of stremIO addon support (HDHub, Nebula, and Pengu), fixing vyla/flicky/videasy/xpass/lordflix, and adding FEB file host support into exclusives, we’re back up to an insane amount of source grabs on popular titles like Backrooms."}, {"post_id": 23705, "ts": "2026-07-06T20:16:44Z", "hours": 3.2283, "text": "Research for new sources, better mobile navigation, organize source wrappers, and improve the Vyla first-come-first-serve route"}, {"post_id": 21743, "ts": "2026-07-03T20:38:17Z", "hours": 2.8972, "text": "New backup player (Vyla), Backrooms iNTERNAL rip, overrideSource option in player for non-tmdb, fix vidlink & remove nomorflix"}, {"post_id": 16749, "ts": "2026-06-27T06:29:30Z", "hours": 1.7714, "text": "Introduced new Movieslay Exclusive for The Oldest View ( @project .rolling.giant on instagram), fixed Passthru proxy to work on production via fly.io. Oh also we now have Backrooms in great quality from Vidlink primary :)"}, {"post_id": 14939, "ts": "2026-06-24T08:35:03Z", "hours": 0.5364, "text": "Introduced a new server-side proxy that adds headers over m3u8s to make tons of urls that were previously thrown away due to 403s work."}, {"post_id": 14910, "ts": "2026-06-24T06:42:33Z", "hours": 7.7275, "text": "6 new sources, fixed AE & 123anime using an anime database, airplay cast-to-TV support on iOS, full support android app, settings menu with volume, playback speed, keybinds, and sorted streams into guarenteed working ones (GET & HEAD request checks, proxied) and unreliable backups (direct urls, did not pass checks)"}, {"post_id": 7353, "ts": "2026-06-12T08:12:35Z", "hours": 3.3936, "text": "Two new sources, anime mappings between TMDB ids and 10 other anime API’s ids, as well as a WIP extractor of movieslay content built in to yt-dlp."}, {"post_id": 3280, "ts": "2026-06-06T04:16:32Z", "hours": 3.5922, "text": "Added volume slider from 0%-200% as well as magnet downloads (direct files openable in qBitTorrent or any bittorrent client) & mkv/mp4 file downloads from non-HLS provider results."}]...
|
Title: Movieslay Emerald by @Gavin | Stardance
De Title: Movieslay Emerald by @Gavin | Stardance
Devlogs:
Added volume slider from 0%-200% as well as magnet downloads (direct files openable in qBitTorrent or any bittorrent client) & mkv/mp4 file downloads from non-HLS provider results.
Two new sources, anime mappings between TMDB ids and 10 other anime API’s ids, as well as a WIP extractor of movieslay content built in to yt-dlp.
6 new sources, fixed AE & 123anime using an anime database, airplay cast-to-TV support on iOS, full support android app, settings menu with volume, playback speed, keybinds, and sorted streams into guarenteed working ones (GET & HEAD request checks, proxied) and unreliable backups (direct urls, did not pass checks)
Introduced a new server-side proxy that adds headers over m3u8s to make tons of urls that were previously thrown away due to 403s work.
Introduced new Movieslay Exclusive for The Oldest View ( @project .rolling.giant on instagram), fixed Passthru proxy to work on production via fly.io. Oh also we now have Backrooms in great quality from Vidlink primary :)
New backup player (Vyla), Backrooms iNTERNAL rip, overrideSource option in player for non-tmdb, fix vidlink & remove nomorflix
Research for new sources, better mobile navigation, organize source wrappers, and improve the Vyla first-come-first-serve route
With the addition of stremIO addon support (HDHub, Nebula, and Pengu), fixing vyla/flicky/videasy/xpass/lordflix, and adding FEB file host support into exclusives, we’re back up to an insane amount of source grabs on popular titles like Backrooms.
Started work on Movieslay Pley for watchOS (project Odys). Pley is an app suite to let you access direct content in native ways without the regular Movieslay player & ui. Attached screenshots are directly from watchOS on a Watch SE (1st gen).
added live cable TV networks
Worked on tons of brand new sources (including VylaSDK), moved 3rd-party players to a separate menu, fixed tons of player bugs
Updated UI for info displays on content pages as well as overall padding and rounding
TMDB collections support! This feature allows movies in a series (ex. Spider-Verse trilogy) to have a next/previous button similar to TV shows. If you’re trying to bingewatch a series of movies this feature can help you out :) Currently just shows the top TMDB collection (based on a movie’s ‘belongs_to_collection’ tag)
Minor UI fixes - expanded the video player to take up all available height (this works now that the footer/warning banner is moved to the external players menu), and fixed padding on page content.
Made content streams in HLS (.m3u8) format only run through HLS.js if on a non-Apple system as Apple devices (and AirPlay) support .m3u8 playlists directly. Also added a dedicated cast button for content casting with Google Cast SDK, AirPlay/WebKit, and native device casting. Finally, added an exclusive page at /exclusives/btsv for the ‘leaked’ unfinished Beyond the Spider Verse trailer.
Completely re-did stream checker. Sources for a particular TV or Movie are now ran through a robust content validator that ensures each link is playable & has the correct content, or filters it to Backup (playable but bad content) or Invalid (non playable, hidden by default). Each source now shows much more info as well, as the checker returns the media type (HLS or MP4), quality (4k to 240p), resolution, and duration. Picking exactly which source you want is much easier now. With these changes, each piece of media is nearly guaranteed to load on the first try.
Ships:
Movieslay is an all-in-one content streaming platform - bundled with integrations for 30+ providers & partners, and completely ad-free & open source.
Watch all your favorite media free today with Movieslay. Unlike many other shady platforms, Movieslay guarantees zero ads or popups, hundreds of stream sources aggregated across a network of providers, and raw direct downloads....
|
1792979735.249952
|
1793066135.249952
|
|
37294
|
Voxelized by @luxi | Stardance
|
luxi
|
3
|
59.0
|
594
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-06T15:25:38Z", "hours": 16.0, "multiplier": 10.96, "payout": 90, "blessing": "neutral", "text": "I’ve finished another release of the voxel engine, it’s more optimized, has volumetric clouds, light sources and procedural generation.", "repo": "https://github.com/nixuntris/Voxelized", "demo": "https://github.com/nixuntris/Voxelized/releases"}, {"ship_num": 2, "ts": "2026-09-01T15:53:27Z", "hours": 20.0, "multiplier": 13.94, "payout": 279, "blessing": "neutral", "text": "I implemented GUI, more varied scenes, reflections to the water Along with general QOL and it should be slightly faster than before. I worked on documenting the technical details as well", "repo": "https://github.com/nixuntris/Voxelized", "demo": "https://github.com/nixuntris/Voxelized/releases"}, {"ship_num": 3, "ts": "2026-08-22T00:02:33Z", "hours": 23.0, "multiplier": 11.55, "payout": 225, "blessing": "neutral", "text": "I’ve implemented a software raytracer that runs on the CPU in real time. It’s quite heavy still so a beefy system is recommended. (I use a 5950x). It uses avx2 to speed up the direction calculations along with a low level ray pass (the complete list of functionality is listed in the release description on github)", "repo": "https://github.com/nixuntris/Voxelized", "demo": "https://github.com/nixuntris/Voxelized/releases"}]...
|
[{"post_id": 77319, "ts": "202 [{"post_id": 77319, "ts": "2026-10-06T15:13:15Z", "hours": 1.5731, "text": "I implemented a chunk based acceleration tree, so that only chunks within the radius of the light get lit. Not that much. Been busy with school and studying math. I will be working on documenting the technical changes since the last blog post. Currently just releasing since a lot of hours accumulated since the last release"}, {"post_id": 68531, "ts": "2026-09-15T08:34:43Z", "hours": 3.5928, "text": "I have implemented lights, currently they are pixel pixel. Not going with per voxel probes, too expensive. Probably gonna do irradiance 8^3 probes. Very simple not yet optimized"}, {"post_id": 64404, "ts": "2026-09-08T19:12:52Z", "hours": 2.1897, "text": "I’ll let the video speak for itself"}, {"post_id": 63546, "ts": "2026-09-07T13:52:14Z", "hours": 2.6008, "text": "I’ve implemented gradual world gen, so instead of generating all at once they get generated on demand. Currently it’s still constrained to a specific size but I will fix it by changing to a hashmap. I need to also implement chunk prioritization for better experience and multi thread it better."}, {"post_id": 62385, "ts": "2026-09-05T18:31:27Z", "hours": 6.4331, "text": "Clouds and more optimizations. I store 2 pre-calculated noise maps, one is height, the other is density I use them in combination to create clouds"}, {"post_id": 59644, "ts": "2026-09-01T15:49:00Z", "hours": 7.4706, "text": "I have implemented more different world types, gui improvements, water reflections, world loading and unloading etc… Mostly general optimizations and QOL improvements rather than a deep technique. Something I plan for the release after this one"}, {"post_id": 57639, "ts": "2026-08-29T20:56:01Z", "hours": 5.1456, "text": "I implemented larger worlds and a very basic menu to choose it’s size. Along with the ability to dynamically change resolutions, (currently controllable by keyboard but I want to make a full ui for all the graphical stuff). I removed trees as I want to move towards space colonization and ones that will actually look good. Overall rendering a world that is 4096^2x512 is not much slower than 8192^2x512 thanks to distance fields. I am moving forward with getting acceptable performance for a game, but it’s still not perfect. Also superliminal gave me a license to their cpu debugging software suite for free ;) so it will get fine tuned after I have all techniques implemented"}, {"post_id": 56222, "ts": "2026-08-27T21:51:26Z", "hours": 2.3972, "text": "I’ve been working on documenting my ray tracer further. Here’s a link to my blog post explaining the technical details: https://nixuntris.github.io/Private-Website/blueprint.html?id=raytracer"}, {"post_id": 53363, "ts": "2026-08-23T21:40:11Z", "hours": 5.0497, "text": "I implemented colored lighting, and light absorption, eg different materials absorb different amounts of light along with light diffusion so that light scatters, I am working on an upscaler and on demand probe allocation(it’s easily the heaviest part of the storage). I also implemented quantizing distance4 values to consume less memory. I also speed up world generation and multithreaded it. Overall focusing on memory storage. It’s very buggy rn however so a lot of bug fixing incoming"}, {"post_id": 51979, "ts": "2026-08-21T23:48:26Z", "hours": 6.6522, "text": "I’ve been optimizing the project. Now it can handle much larger render distances, at higher fps and I added deduping along with light absorption per material. It’s highly experimental but it works. I’ve improved on the terrain gen a bit more so that the scene is a bit more complex. I also finished lods. I am preping the ship"}, {"post_id": 51054, "ts": "2026-08-20T15:15:56Z", "hours": 2.9011, "text": "I’ve been working on optimizing the renderer and the world structure and acceleration data generation. I’ve implemented that low resolution pass, screen space lods that calculate the distance to start based on resolution and fovy. Along with just making the algorithm faster. I added secondary rays that use per voxel data as it’s faster to calculate (so a cheat code in a way because per pixel shadows are more expensive) they are only a visibility check for now. Along with speeding up the world gen and adding actual tree crowns. I plan on simiding the rays themself now along with the fact that speeding up world gen and making it more interesting is one of my more important tasks along with implementing proper global illumination and upscaling(there is a partial simple implementantion however it does no edge detection and smoothing). This is all running on a 5950x at 1000x1000 resolution at about 40-45 fps average (yes I know a frame time should be given instead of fps but I haven’t yet exactly built a debugger for it) however at 80% internal resolution it’s about 50-60 fps."}, {"post_id": 49233, "ts": "2026-08-17T21:58:24Z", "hours": 13.7969, "text": "I’ve been working on a realtime CPU voxel raytracer. It utilizes raymarching combined with multi level DDA for fast primary rays. I calculate distance fields stored in an octree format to optimize the raymarcher. I simded the ray direction calculation and multithreaded it. It utilizes checkerboard rendering while keeping the quality seemless. Every even frame gets to use odd’s frame distance, to speed up the traversal speeds. I want to implement a low level traversal algorithm for odd frames to speed up their traversal as well. Sadly I am not yet ready to blog but I am forced to as to not lose more hours. I tried to experiment with more techniques but I decided to still go with raytracing as I already have anotehr rasterization project going on."}]...
|
Title: Voxelized by @luxi | Stardance
Devlogs:
I’ Title: Voxelized by @luxi | Stardance
Devlogs:
I’ve been working on a realtime CPU voxel raytracer. It utilizes raymarching combined with multi level DDA for fast primary rays. I calculate distance fields stored in an octree format to optimize the raymarcher. I simded the ray direction calculation and multithreaded it. It utilizes checkerboard rendering while keeping the quality seemless. Every even frame gets to use odd’s frame distance, to speed up the traversal speeds. I want to implement a low level traversal algorithm for odd frames to speed up their traversal as well. Sadly I am not yet ready to blog but I am forced to as to not lose more hours. I tried to experiment with more techniques but I decided to still go with raytracing as I already have anotehr rasterization project going on.
I’ve been working on optimizing the renderer and the world structure and acceleration data generation. I’ve implemented that low resolution pass, screen space lods that calculate the distance to start based on resolution and fovy. Along with just making the algorithm faster. I added secondary rays that use per voxel data as it’s faster to calculate (so a cheat code in a way because per pixel shadows are more expensive) they are only a visibility check for now. Along with speeding up the world gen and adding actual tree crowns. I plan on simiding the rays themself now along with the fact that speeding up world gen and making it more interesting is one of my more important tasks along with implementing proper global illumination and upscaling(there is a partial simple implementantion however it does no edge detection and smoothing). This is all running on a 5950x at 1000x1000 resolution at about 40-45 fps average (yes I know a frame time should be given instead of fps but I haven’t yet exactly built a debugger for it) however at 80% internal resolution it’s about 50-60 fps.
I’ve been optimizing the project. Now it can handle much larger render distances, at higher fps and I added deduping along with light absorption per material. It’s highly experimental but it works. I’ve improved on the terrain gen a bit more so that the scene is a bit more complex. I also finished lods. I am preping the ship
I implemented colored lighting, and light absorption, eg different materials absorb different amounts of light along with light diffusion so that light scatters, I am working on an upscaler and on demand probe allocation(it’s easily the heaviest part of the storage). I also implemented quantizing distance4 values to consume less memory. I also speed up world generation and multithreaded it. Overall focusing on memory storage. It’s very buggy rn however so a lot of bug fixing incoming
I’ve been working on documenting my ray tracer further. Here’s a link to my blog post explaining the technical details: https://nixuntris.github.io/Private-Website/blueprint.html?id=raytracer
I implemented larger worlds and a very basic menu to choose it’s size. Along with the ability to dynamically change resolutions, (currently controllable by keyboard but I want to make a full ui for all the graphical stuff). I removed trees as I want to move towards space colonization and ones that will actually look good. Overall rendering a world that is 4096^2x512 is not much slower than 8192^2x512 thanks to distance fields. I am moving forward with getting acceptable performance for a game, but it’s still not perfect. Also superliminal gave me a license to their cpu debugging software suite for free ;) so it will get fine tuned after I have all techniques implemented
I have implemented more different world types, gui improvements, water reflections, world loading and unloading etc… Mostly general optimizations and QOL improvements rather than a deep technique. Something I plan for the release after this one
Clouds and more optimizations. I store 2 pre-calculated noise maps, one is height, the other is density I use them in combination to create clouds
I’ve implemented gradual world gen, so instead of generating all at once they get generated on demand. Currently it’s still constrained to a specific size but I will fix it by changing to a hashmap. I need to also implement chunk prioritization for better experience and multi thread it better.
I’ll let the video speak for itself
I have implemented lights, currently they are pixel pixel. Not going with per voxel probes, too expensive. Probably gonna do irradiance 8^3 probes. Very simple not yet optimized
I implemented a chunk based acceleration tree, so that only chunks within the radius of the light get lit. Not that much. Been busy with school and studying math. I will be working on documenting the technical changes since the last blog post. Currently just releasing since a lot of hours accumulated since the last release
Ships:
I’ve implemented a software raytracer that runs on the CPU in real time. It’s quite heavy still so a beefy system is recommended. (I use a 5950x). It uses avx2 to speed up the direction calculations along with a low level ray pass (the complete list of functionality is listed in the release description on github)
I implemented GUI, more varied scenes, reflections to the water Along with general QOL and it should be slightly faster than before. I worked on documenting the technical details as well
I’ve finished another release of the voxel engine, it’s more optimized, has volumetric clouds, light sources and procedural generation....
|
1792983353.2449896
|
1793069753.2449896
|
|
67902
|
Refract by @mixidmb | Stardance
|
mixidmb
|
1
|
32.0
|
594
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-19T19:56:54Z", "hours": 32.0, "multiplier": 18.8, "payout": 594, "blessing": "neutral", "text": "Refract! Quest Games Translation Layer. Haii! I made a way to play Quest games like Batman, Iron Man VR and AC Nexus on PC, Or any PCVR headset. You can even play Resident Evil 4 now, which is one of the most requested one :P It runs on Windows or Linux. The Android Emulator on Windows is the most compatible one. Refract Native is also on Windows and runs the game’s ARM64 code directly on the CPU, so its faster but still experimental (While recording a demo i got a pink cube in AC nexus lol, but through android emulator works!). Linux uses waydroid that just shares kernel. It’s still experimental though, so not every game works yet. Here is a video of me yapping a ton about it, and showing some gameplay >_> https://youtu.be/OpW-374mX74", "repo": "https://github.com/MIXIDtheSilly/Refract", "demo": "https://github.com/MIXIDtheSilly/Refract/releases"}]...
|
[{"post_id": 81063, "ts": "202 [{"post_id": 81063, "ts": "2026-10-19T18:20:30Z", "hours": 6.1647, "text": "Bug fixes and compatibility Okay let’s start with the big things. Iron Man VR works and runs at 140+ fps. And one of the most requested games, Resident Evil 4, runs too! It’s at around 160+ fps. It uses the old VrApi, which now works (still experimental, and 32-bit games aren’t supported). Controller haptics, the Linux Android build tools fix (game imports work now), and viewer crash reporting also work. Crashes go to viewer.err with el reason."}, {"post_id": 80654, "ts": "2026-10-18T12:31:32Z", "hours": 8.0708, "text": "Its even faster now Since last devlog, I swapped default translation layer on linux to my optimized Digitalis, and from dynarmic to Digitalis on Refract Native (windows). AND DAMNN, no one can tell me dynarmic is faster lol, from 200 fps in one of the games to 300+. Batman also runs at 120+ Linux has a working launcher now, and windows got texture compression improvements (RIP Vram) Then there are a bunch of other fixes, like Meta audio SDK working on Linux, or /sdcard storage path now resolving properly. Oh and almost forgot, FINALLY OPTIMIZED THE MAIN THREAD! It can hit 100% now because of lighter code also being JIT. This was probably the last bottleneck."}, {"post_id": 79125, "ts": "2026-10-12T19:11:22Z", "hours": 9.4442, "text": "Refract without an emulator now hai again, so over the past week I worked on Linux support and Refract Native , now you can run Quest games directly (well, translation layer) on the CPU without using QEMU. Funny JIT floating point error lol, broke my friend’s rig apart. What about Linux progress? The games run great! I tried it on North Star and it’s hitting 80 fps, cuz as you probably know we also don’t have to emulate the kernel there as Linux and Android are basically the same thing. also I hit 12 issues on GitHub (help)"}, {"post_id": 77853, "ts": "2026-10-08T15:22:14Z", "hours": 7.9314, "text": "Haii! So some of you know i got banned for a while but i’m back! New Project Refract! (You can now play Meta Quest titles on PC & PCVR) Refract runs Quest games on a Windows PC (Linux support soon! ), and in a PC VR headset through SteamVR. The APK runs in Android on your machine, Refract gives it fake Quest calls, and the eye frames come back out to your headset. Refract is for games you own! credit required if you use the code :P It started as a fork of AXRB by Feline Reintgen (But now its using my code so ig we are superior lol), and the launcher’s Meta sign-in comes from RiftLift. Translator is Digitalis. Oh forgot to mention that i already worked on it for a while, but wasn’t able to track time because of the suspension. And here is my playing batman on it."}]...
|
Title: Refract by @mixidmb | Stardance
Devlogs:
H Title: Refract by @mixidmb | Stardance
Devlogs:
Haii! So some of you know i got banned for a while but i’m back! New Project Refract! (You can now play Meta Quest titles on PC & PCVR) Refract runs Quest games on a Windows PC (Linux support soon! ), and in a PC VR headset through SteamVR. The APK runs in Android on your machine, Refract gives it fake Quest calls, and the eye frames come back out to your headset. Refract is for games you own! credit required if you use the code :P It started as a fork of AXRB by Feline Reintgen (But now its using my code so ig we are superior lol), and the launcher’s Meta sign-in comes from RiftLift. Translator is Digitalis. Oh forgot to mention that i already worked on it for a while, but wasn’t able to track time because of the suspension. And here is my playing batman on it.
Refract without an emulator now hai again, so over the past week I worked on Linux support and Refract Native , now you can run Quest games directly (well, translation layer) on the CPU without using QEMU. Funny JIT floating point error lol, broke my friend’s rig apart. What about Linux progress? The games run great! I tried it on North Star and it’s hitting 80 fps, cuz as you probably know we also don’t have to emulate the kernel there as Linux and Android are basically the same thing. also I hit 12 issues on GitHub (help)
Its even faster now Since last devlog, I swapped default translation layer on linux to my optimized Digitalis, and from dynarmic to Digitalis on Refract Native (windows). AND DAMNN, no one can tell me dynarmic is faster lol, from 200 fps in one of the games to 300+. Batman also runs at 120+ Linux has a working launcher now, and windows got texture compression improvements (RIP Vram) Then there are a bunch of other fixes, like Meta audio SDK working on Linux, or /sdcard storage path now resolving properly. Oh and almost forgot, FINALLY OPTIMIZED THE MAIN THREAD! It can hit 100% now because of lighter code also being JIT. This was probably the last bottleneck.
Bug fixes and compatibility Okay let’s start with the big things. Iron Man VR works and runs at 140+ fps. And one of the most requested games, Resident Evil 4, runs too! It’s at around 160+ fps. It uses the old VrApi, which now works (still experimental, and 32-bit games aren’t supported). Controller haptics, the Linux Android build tools fix (game imports work now), and viewer crash reporting also work. Crashes go to viewer.err with el reason.
Ships:
Refract! Quest Games Translation Layer. Haii! I made a way to play Quest games like Batman, Iron Man VR and AC Nexus on PC, Or any PCVR headset. You can even play Resident Evil 4 now, which is one of the most requested one :P It runs on Windows or Linux. The Android Emulator on Windows is the most compatible one. Refract Native is also on Windows and runs the game’s ARM64 code directly on the CPU, so its faster but still experimental (While recording a demo i got a pink cube in AC nexus lol, but through android emulator works!). Linux uses waydroid that just shares kernel. It’s still experimental though, so not every game works yet. Here is a video of me yapping a ton about it, and showing some gameplay >_> https://youtu.be/OpW-374mX74...
|
1792857183.3555014
|
1792943583.3555014
|
|
6024
|
WorldTV by @cognitayohan | Stardance
|
cognitayohan
|
7
|
35.0
|
593
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-12T17:48:51Z", "hours": 1.0, "multiplier": 15.7, "payout": 20, "blessing": "neutral", "text": "Ship #7: After reviewing community requests, I have updated the User Interface to be more friendly and easy to use. I also have updated the code so that the viewing of the channels would be less consumptions with CPU fluid.", "repo": "https://github.com/robot3-track/worldchannels", "demo": "https://worldchannels.vercel.app"}, {"ship_num": 2, "ts": "2026-07-24T16:27:26Z", "hours": 8.0, "multiplier": 17.11, "payout": 139, "blessing": "neutral", "text": "Ship #6: After reviewing community requests, I have added each countries’ respective channels to match each location properly (to fix the previous issue of incorrect mapping!). I also built Android files so that Github could run the Artifact process for building an APK version of the app! This gives users the option to view on the web or on their Android devices. Lastly, I integrated a system where you can request for adding legal channels where it would go into a system of review. Thank you all for your support on this project! Feel free to give feedback on anything else to improve in the future!", "repo": "https://github.com/robot3-track/worldchannels", "demo": "https://worldchannels.vercel.app"}, {"ship_num": 3, "ts": "2026-07-17T05:33:40Z", "hours": 7.0, "multiplier": 19.43, "payout": 133, "blessing": "neutral", "text": "Ship #5: Based off community requests, I have added the following new features: Now you can experience a true “Hybrid” Satellite View on the interactive tracking map. By extending our map style configurations with an (overlayUrl) property, we integrated transparent, high-resolution administrative boundaries and place labels directly over the raw satellite imagery. Furthermore, I updated the layer rendering and cleanup logic inside the Leaflet initialization. Using a newly added (useRef) tracking system (overlayLayerRef), the map now dynamically mounts and cleanly dismounts these administrative labels whenever you swap map styles. This fixes overlapping layer bugs and ensures a seamless transition between views. Lastly, I streamlined the z-index layout for marker clusters. Dynamic markers and clustering elements are automatically forced to the front of the map stack. This ensures that your active stream nodes and telemetry coordinates always float perfectly above the new border overlays, keeping the terminal readable and highly functional. Let me know what else you would like to add! Thank you so much for your support and reading this!", "repo": "https://github.com/robot3-track/worldchannels", "demo": "https://worldchannels.vercel.app"}, {"ship_num": 4, "ts": "2026-07-13T03:35:55Z", "hours": 6.0, "multiplier": 14.07, "payout": 82, "blessing": "neutral", "text": "Based off community requests, I have added the following new features: Now you can record segments of a livestream through the native video streaming. With MediaRecorder API, it is possible to record desired segments of the livestreams and have it automatically packaged for download. Furthermore, I updated the code logic of checking stream offline/online ability. Lastly, I added more stable streams and their backups. Upgraded from 4,000 streams to 6,000! (70-85% are live) Read README for more detailed descriptions about the deployments, available channels, and official rules. Let me know what else you would like to add!", "repo": "https://github.com/robot3-track/worldchannels", "demo": "https://worldchannels.vercel.app"}, {"ship_num": 5, "ts": "2026-07-06T04:17:55Z", "hours": 4.0, "multiplier": 19.42, "payout": 87, "blessing": "neutral", "text": "World Channels - Ship #3 After reviewing new comments and suggestions from the community, I have edited World Channels to have more countries, streams, and a better backup-system. Hope you enjoy World Channels at: https://worldchannels.vercel.app !", "repo": "https://github.com/robot3-track/worldchannels", "demo": "https://worldchannels.vercel.app"}, {"ship_num": 6, "ts": "2026-07-01T18:18:22Z", "hours": 8.0, "multiplier": 13.15, "payout": 106, "blessing": "neutral", "text": "World Channels - Ship #2 After reviewing comments and suggestions from the community, I have made quite a few changes to the app since the last Ship. Now the video player is compatible to even more channels, the UI has been updated, and the channel availability has been double-checked. Hope you enjoy World Channels at: https://worldchannels.vercel.app !", "repo": "https://github.com/robot3-track/worldchannels", "demo": "https://worldchannels.vercel.app"}, {"ship_num": 7, "ts": "2026-06-24T18:46:48Z", "hours": 1.0, "multiplier": 18.23, "payout": 26, "blessing": "neutral", "text": "This is World Channels, a webapp that utilizes open source/free m3u8 streaming and connects them to specific coordinates across the world. The project is currently running successfully but is always going slight changes as m3u8 channels may turn off and on throughout times. Feel free to check it out at: https://worldchannels.vercel.app . This project requires good internet access in order to connect to the channels. Have fun exploring the channels of the world!", "repo": "https://github.com/robot3-track/worldchannels", "demo": "https://worldchannels.vercel.app"}]...
|
[{"post_id": 55371, "ts": "202 [{"post_id": 55371, "ts": "2026-08-27T04:50:55Z", "hours": 0.9408, "text": "World Channels Devlog 32 After updating the User Interface for the application, I decided to work on the api/streams.js file. The Fluid Active CPU was getting inefficiently wasted, so I decided to connect my api/streams.js to edge runtime as well as removing all duplicate streaming services. This cut down my channel # from 11,000 –> 9,000. But this clears up the speed and CPU usage while removing random duplicates."}, {"post_id": 54911, "ts": "2026-08-26T04:04:41Z", "hours": 0.3483, "text": "World Channels Devlog 31 After a break for a while, I updated the User Interface as requested by a few community members. The app now is more smooth, quicker loading times, and is nicer to view with the eye."}, {"post_id": 33854, "ts": "2026-07-24T03:15:43Z", "hours": 0.5411, "text": "World Channels Devlog 30 To upgrade the app, I continued to verify streams and the UI. I also made a new artifact run for Github- building an Android file! Now you can download the APK version of the app for local viewing rather than on the web."}, {"post_id": 32980, "ts": "2026-07-22T14:29:04Z", "hours": 0.4978, "text": "World Channels Devlog 29 I added the main streaming services from all 195 countries + 2 territories, increasing the total amount of streams from 8,000 –> 11,700 streams! I also changed the limit from 10,000 to 15,000 for vercel stability on the deployment. For those who haven’t seen it yet, check out the app at: https://worldchannels.vercel.app !"}, {"post_id": 32490, "ts": "2026-07-21T18:27:17Z", "hours": 0.8194, "text": "World Channels Devlog 28 Created a new add streaming interface where users can input links and titles of the channel for consideration to add onto the main app. Also have filters to ensure safety for new streams."}, {"post_id": 32179, "ts": "2026-07-21T05:10:49Z", "hours": 1.9064, "text": "World Channels Devlog 27 Updated new streaming as well as new map logic! Now when a channel is selected, the map zooms in all the way to the pinpoint location of the streaming. Also, the map now has better clustering features when zooming out for UI purposes."}, {"post_id": 31614, "ts": "2026-07-20T04:58:47Z", "hours": 1.2481, "text": "World Channels Devlog 26 Continued to add new streams for more variety in content in the family entertainment fields. Also updated titles (as WC26 is over) and updated Readme as well. Total streams update: 6900 streams –> 7814 streams!"}, {"post_id": 30969, "ts": "2026-07-18T23:56:07Z", "hours": 1.3047, "text": "World Channels Devlog 25 Added new streams and backups; now World Channels proudly boasts a total of 7000 channels! Friendly reminder: some people thought that World Channels only supports sports channels, but actually there are multiple categories in the filter. Lots of family, news, and sports channels are available!"}, {"post_id": 30529, "ts": "2026-07-18T05:44:24Z", "hours": 0.7208, "text": "World Channels Devlog 24 Updated map rendering to support multiple layouts, and added/fixed some channel streaming for embeds as well as livestreaming."}, {"post_id": 30371, "ts": "2026-07-17T20:57:52Z", "hours": 1.1989, "text": "World Channels Devlog 23 Built globe 3D for world map rendering! Also set globe as default and added a legend for easy user usability. I used leaflet for the 2D map and maplibregl for the 3D globe."}, {"post_id": 29961, "ts": "2026-07-17T05:31:40Z", "hours": 0.2639, "text": "World Channels Devlog 22 Added new streams and backups to reach a total of 6252 streams currently! More to come!"}, {"post_id": 29958, "ts": "2026-07-17T05:16:02Z", "hours": 0.9694, "text": "World Channels Devlog 21 Added new features (channel watched history, bookmarking favorite channels, arrow keys for quick channel switch) based off newest community requests!"}, {"post_id": 29879, "ts": "2026-07-17T01:26:22Z", "hours": 0.5117, "text": "World Channels Devlog 20 Updated streaming availability and double-checked streaming verifications. Added up to 6,100 new streams!"}, {"post_id": 29860, "ts": "2026-07-17T00:42:09Z", "hours": 0.5686, "text": "World Channels Devlog 19 Added new UI features!! After Github’s REST API came back, I decided to update the UI to be more user friendly. I made a tutorial guide, removed the annoying UI footer, and made a proper loading screen! Watch the video below to see the latest run of the app!"}, {"post_id": 29834, "ts": "2026-07-16T23:44:23Z", "hours": 0.3022, "text": "World Channels Devlog 18 I added new favoriting channels feature and new commands (arrow keys for quick navigation, enter for selecting)! However, right now Github’s REST API are down and cannot push to live Vercel deployments, so it will take some time before it is pushed over live. But below is a local host picture that depicts what the new feature looks like and will be deployed soon."}, {"post_id": 29801, "ts": "2026-07-16T22:41:25Z", "hours": 0.5431, "text": "World Channels Devlog 17 Updated new streaming types and re-categorized some UI streaming titles to provide optimal UI! More updates to come for the UI formatting!"}, {"post_id": 28731, "ts": "2026-07-15T05:21:03Z", "hours": 1.07, "text": "World Channels Devlog 16 Fixed known channel freeze bug after multiple channels are clicked on. Also fixed some server issues and search bar bug. The app now runs faster and works even better than before!"}, {"post_id": 28662, "ts": "2026-07-15T01:38:46Z", "hours": 0.6136, "text": "World Channels Devlog 15 To maintain strong filters on community channels, I have updated filters respectively."}, {"post_id": 28596, "ts": "2026-07-14T22:53:40Z", "hours": 0.4997, "text": "World Channels Devlog 14 Complete UI update! UI conflicts have been fixed after lots of coding and planning throughout the past few devlogs, and now the World Map layout includes 4 customization features, the channels are properly ordered, and the app is upgraded overall!"}, {"post_id": 28357, "ts": "2026-07-14T15:48:23Z", "hours": 1.5828, "text": "World Channels Devlog 13 New channels have been added as well as many backups. Furthermore, I have reordered channels by confidence levels and streaming quality (the higher the more towards the top of the list!)"}, {"post_id": 27495, "ts": "2026-07-13T03:32:29Z", "hours": 0.4044, "text": "World Channels Devlog 12 New channels have been established and the order of streams has been refined for UI accessibility. Furthermore, the total amount of streams has increased overall from an original 5,500 to a total of around 6,000 streams live with a 85% live coverage at all times. Live stream health has been placed!"}, {"post_id": 27372, "ts": "2026-07-12T21:37:38Z", "hours": 0.5414, "text": "World Channels Devlog 11 New channels have been established and the order of streams has been refined for UI accessibility. Furthermore, the total amount of streams has increased overall from an original 4,200 to a total of around 5,500 streams live with a 80% live coverage at all times. More live stream health indicators will be put into place in the future!"}, {"post_id": 26981, "ts": "2026-07-12T03:33:25Z", "hours": 1.4422, "text": "World Channels Devlog 10 Continued to filter new channels and update categories to maintain country placements. Furthermore, new channels has been added to all major countries upon community requests."}, {"post_id": 26793, "ts": "2026-07-11T19:48:22Z", "hours": 0.6258, "text": "World Channels Devlog 9. Filtered new channels and updated categories to maintain country placements. Also continued to update descriptions in README.md and App.tsx as well as updating checking stream offline/online ability logic as seen below: if (contentType.includes('text/html')) { if (hasMediaExtension) { // It asked for a media file but got a webpage. This is a dead link/error page. req.destroy(); return resolve(false); } else { // It asked for an extensionless URL and got a webpage. Trust it as a valid Iframe embed. req.destroy(); return resolve(true); } }"}, {"post_id": 26195, "ts": "2026-07-10T21:07:08Z", "hours": 1.7183, "text": "World Channels Devlog 8. Continued to add more channels from around the world to prior requests for more countries. Also updated descriptions in README.md and App.tsx"}, {"post_id": 25472, "ts": "2026-07-09T19:13:34Z", "hours": 0.2867, "text": "World Channels Devlog 7. Based off community requests, I have added the new feature: Now you can record segments of a livestream through the native video streaming. With MediaRecorder API, it is possible to record desired segments of the livestreams and have it automatically packaged for download. Furthermore, I updated the code logic of checking stream offline/online ability. More community requests will be fulfilled in the next devlog (specific channels to come)! Note: Some community members have asked about World Channels and regarding the streams. Streams are fetched from legit community sources and live updated. IPTV.ORG managed by Github is a community managed repository on Github with constant checks on channels to make sure everything is legal and safe. Even so, as an additional measure, I do take into account to filter out streams that are not legal/copyrighted to ensure that World Channels is 100% legal. Furthermore, some premium channels give free access to some of their content, so it is normal to see a blocking page on those specific channels that state the free access will be down for a certain amount of time- until the copyrighted content is finished. This is completely legal and is a proper process for protecting copyright throughout the countries."}, {"post_id": 24985, "ts": "2026-07-08T21:34:15Z", "hours": 0.8064, "text": "World Channels Devlog 6. Continued to add more channels from around the world to prior requests for more countries. Also updated videoplayer efficiency to make app load quicker."}, {"post_id": 23277, "ts": "2026-07-06T04:16:33Z", "hours": 4.4864, "text": "World Channels Devlog 5. Added more channels from around the world to prior requests for more countries. Now includes official free channels that broadcast live sports along with existing channels."}, {"post_id": 19708, "ts": "2026-07-01T03:14:44Z", "hours": 0.5589, "text": "World Channels Devlog 4. Replaced old video player with new system that allows for more streams to play. The fix was using a more universal player that allowed more streams to run rather than the restricted interface from before. Now channels for example from Turkmenistan can work properly compared to before."}, {"post_id": 19016, "ts": "2026-06-30T05:42:19Z", "hours": 3.2631, "text": "World Channels Devlog 3. Removed old channels, ensured all channels were under the right coordinates, and added limit of 10,000 channels for a total of 5,500 channels currently with 80+ countries, including islands in the Caribbean."}, {"post_id": 15470, "ts": "2026-06-25T04:57:15Z", "hours": 4.2069, "text": "World Channels Devlog 2. Fixed UI, added more channels, and developed a better solution to ensure all channels’ coordinates were precise to their actual locations. Also fixed limits and running time to support nearly 4000 channels across the Globe with 50+ countries."}, {"post_id": 14866, "ts": "2026-06-24T04:12:04Z", "hours": 1.4369, "text": "World Channels Web App Set Up! 🎉🎉 After debugging and coding, the webapp world channels is ready for shipping! The app consists of free IPTV channels linked and categorized by country, type, and availability. It includes the core features: Live Stream Integration: Direct access to HLS (.m3u8) streams from over 50 countries. World Map Interface: Interactive geospatial dashboard to discover broadcasts by location. Real-Time Health Monitoring: Automatic background verification of stream uptime and latency. Themed UI: Elegant Dark and Light modes for optimized viewing in any environment. Furthermore, the app can stream the World Cup 2026 Soccer for free through other nation channels! Have fun exploring the free channels of the world!"}]...
|
Title: WorldTV by @cognitayohan | Stardance
Devlo Title: WorldTV by @cognitayohan | Stardance
Devlogs:
World Channels Web App Set Up! 🎉🎉 After debugging and coding, the webapp world channels is ready for shipping! The app consists of free IPTV channels linked and categorized by country, type, and availability. It includes the core features: Live Stream Integration: Direct access to HLS (.m3u8) streams from over 50 countries. World Map Interface: Interactive geospatial dashboard to discover broadcasts by location. Real-Time Health Monitoring: Automatic background verification of stream uptime and latency. Themed UI: Elegant Dark and Light modes for optimized viewing in any environment. Furthermore, the app can stream the World Cup 2026 Soccer for free through other nation channels! Have fun exploring the free channels of the world!
World Channels Devlog 2. Fixed UI, added more channels, and developed a better solution to ensure all channels’ coordinates were precise to their actual locations. Also fixed limits and running time to support nearly 4000 channels across the Globe with 50+ countries.
World Channels Devlog 3. Removed old channels, ensured all channels were under the right coordinates, and added limit of 10,000 channels for a total of 5,500 channels currently with 80+ countries, including islands in the Caribbean.
World Channels Devlog 4. Replaced old video player with new system that allows for more streams to play. The fix was using a more universal player that allowed more streams to run rather than the restricted interface from before. Now channels for example from Turkmenistan can work properly compared to before.
World Channels Devlog 5. Added more channels from around the world to prior requests for more countries. Now includes official free channels that broadcast live sports along with existing channels.
World Channels Devlog 6. Continued to add more channels from around the world to prior requests for more countries. Also updated videoplayer efficiency to make app load quicker.
World Channels Devlog 7. Based off community requests, I have added the new feature: Now you can record segments of a livestream through the native video streaming. With MediaRecorder API, it is possible to record desired segments of the livestreams and have it automatically packaged for download. Furthermore, I updated the code logic of checking stream offline/online ability. More community requests will be fulfilled in the next devlog (specific channels to come)! Note: Some community members have asked about World Channels and regarding the streams. Streams are fetched from legit community sources and live updated. IPTV.ORG managed by Github is a community managed repository on Github with constant checks on channels to make sure everything is legal and safe. Even so, as an additional measure, I do take into account to filter out streams that are not legal/copyrighted to ensure that World Channels is 100% legal. Furthermore, some premium channels give free access to some of their content, so it is normal to see a blocking page on those specific channels that state the free access will be down for a certain amount of time- until the copyrighted content is finished. This is completely legal and is a proper process for protecting copyright throughout the countries.
World Channels Devlog 8. Continued to add more channels from around the world to prior requests for more countries. Also updated descriptions in README.md and App.tsx
World Channels Devlog 9. Filtered new channels and updated categories to maintain country placements. Also continued to update descriptions in README.md and App.tsx as well as updating checking stream offline/online ability logic as seen below: if (contentType.includes('text/html')) { if (hasMediaExtension) { // It asked for a media file but got a webpage. This is a dead link/error page. req.destroy(); return resolve(false); } else { // It asked for an extensionless URL and got a webpage. Trust it as a valid Iframe embed. req.destroy(); return resolve(true); } }
World Channels Devlog 10 Continued to filter new channels and update categories to maintain country placements. Furthermore, new channels has been added to all major countries upon community requests.
World Channels Devlog 11 New channels have been established and the order of streams has been refined for UI accessibility. Furthermore, the total amount of streams has increased overall from an original 4,200 to a total of around 5,500 streams live with a 80% live coverage at all times. More live stream health indicators will be put into place in the future!
World Channels Devlog 12 New channels have been established and the order of streams has been refined for UI accessibility. Furthermore, the total amount of streams has increased overall from an original 5,500 to a total of around 6,000 streams live with a 85% live coverage at all times. Live stream health has been placed!
World Channels Devlog 13 New channels have been added as well as many backups. Furthermore, I have reordered channels by confidence levels and streaming quality (the higher the more towards the top of the list!)
World Channels Devlog 14 Complete UI update! UI conflicts have been fixed after lots of coding and planning throughout the past few devlogs, and now the World Map layout includes 4 customization features, the channels are properly ordered, and the app is upgraded overall!
World Channels Devlog 15 To maintain strong filters on community channels, I have updated filters respectively.
World Channels Devlog 16 Fixed known channel freeze bug after multiple channels are clicked on. Also fixed some server issues and search bar bug. The app now runs faster and works even better than before!
World Channels Devlog 17 Updated new streaming types and re-categorized some UI streaming titles to provide optimal UI! More updates to come for the UI formatting!
World Channels Devlog 18 I added new favoriting channels feature and new commands (arrow keys for quick navigation, enter for selecting)! However, right now Github’s REST API are down and cannot push to live Vercel deployments, so it will take some time before it is pushed over live. But below is a local host picture that depicts what the new feature looks like and will be deployed soon.
World Channels Devlog 19 Added new UI features!! After Github’s REST API came back, I decided to update the UI to be more user friendly. I made a tutorial guide, removed the annoying UI footer, and made a proper loading screen! Watch the video below to see the latest run of the app!
World Channels Devlog 20 Updated streaming availability and double-checked streaming verifications. Added up to 6,100 new streams!
World Channels Devlog 21 Added new features (channel watched history, bookmarking favorite channels, arrow keys for quick channel switch) based off newest community requests!
World Channels Devlog 22 Added new streams and backups to reach a total of 6252 streams currently! More to come!
World Channels Devlog 23 Built globe 3D for world map rendering! Also set globe as default and added a legend for easy user usability. I used leaflet for the 2D map and maplibregl for the 3D globe.
World Channels Devlog 24 Updated map rendering to support multiple layouts, and added/fixed some channel streaming for embeds as well as livestreaming.
World Channels Devlog 25 Added new streams and backups; now World Channels proudly boasts a total of 7000 channels! Friendly reminder: some people thought that World Channels only supports sports channels, but actually there are multiple categories in the filter. Lots of family, news, and sports channels are available!
World Channels Devlog 26 Continued to add new streams for more variety in content in the family entertainment fields. Also updated titles (as WC26 is over) and updated Readme as well. Total streams update: 6900 streams –> 7814 streams!
World Channels Devlog 27 Updated new streaming as well as new map logic! Now when a channel is selected, the map zooms in all the way to the pinpoint location of the streaming. Also, the map now has better clustering features when zooming out for UI purposes.
World Channels Devlog 28 Created a new add streaming interface where users can input links and titles of the channel for consideration to add onto the main app. Also have filters to ensure safety for new streams.
World Channels Devlog 29 I added the main streaming services from all 195 countries + 2 territories, increasing the total amount of streams from 8,000 –> 11,700 streams! I also changed the limit from 10,000 to 15,000 for vercel stability on the deployment. For those who haven’t seen it yet, check out the app at: https://worldchannels.vercel.app !
World Channels Devlog 30 To upgrade the app, I continued to verify streams and the UI. I also made a new artifact run for Github- building an Android file! Now you can download the APK version of the app for local viewing rather than on the web.
World Channels Devlog 31 After a break for a while, I updated the User Interface as requested by a few community members. The app now is more smooth, quicker loading times, and is nicer to view with the eye.
World Channels Devlog 32 After updating the User Interface for the application, I decided to work on the api/streams.js file. The Fluid Active CPU was getting inefficiently wasted, so I decided to connect my api/streams.js to edge runtime as well as removing all duplicate streaming services. This cut down my channel # from 11,000 –> 9,000. But this clears up the speed and CPU usage while removing random duplicates.
Ships:
This is World Channels, a webapp that utilizes open source/free m3u8 streaming and connects them to specific coordinates across the world. The project is currently running successfully but is always going slight changes as m3u8 channels may turn off and on throughout times. Feel free to check it out at: https://worldchannels.vercel.app . This project requires good internet access in order to connect to the channels. Have fun exploring the channels of the world!
World Channels - Ship #2 After reviewing comments and suggestions from the community, I have made quite a few changes to the app since the last Ship. Now the video player is compatible to even more channels, the UI has been updated, and the channel availability has been double-checked. Hope you enjoy World Channels at: https://worldchannels.vercel.app !
World Channels - Ship #3 After reviewing new comments and suggestions from the community, I have edited World Channels to have more countries, streams, and a better backup-system. Hope you enjoy World Channels at: https://worldchannels.vercel.app !
Based off community requests, I have added the following new features: Now you can record segments of a livestream through the native video streaming. With MediaRecorder API, it is possible to record desired segments of the livestreams and have it automatically packaged for download. Furthermore, I updated the code logic of checking stream offline/online ability. Lastly, I added more stable streams and their backups. Upgraded from 4,000 streams to 6,000! (70-85% are live) Read README for more detailed descriptions about the deployments, available channels, and official rules. Let me know what else you would like to add!
Ship #5: Based off community requests, I have added the following new features: Now you can experience a true “Hybrid” Satellite View on the interactive tracking map. By extending our map style configurations with an (overlayUrl) property, we integrated transparent, high-resolution administrative boundaries and place labels directly over the raw satellite imagery. Furthermore, I updated the layer rendering and cleanup logic inside the Leaflet initialization. Using a newly added (useRef) tracking system (overlayLayerRef), the map now dynamically mounts and cleanly dismounts these administrative labels whenever you swap map styles. This fixes overlapping layer bugs and ensures a seamless transition between views. Lastly, I streamlined the z-index layout for marker clusters. Dynamic markers and clustering elements are automatically forced to the front of the map stack. This ensures that your active stream nodes and telemetry coordinates always float perfectly above the new border overlays, keeping the terminal readable and highly functional. Let me know what else you would like to add! Thank you so much for your support and reading this!
Ship #6: After reviewing community requests, I have added each countries’ respective channels to match each location properly (to fix the previous issue of incorrect mapping!). I also built Android files so that Github could run the Artifact process for building an APK version of the app! This gives users the option to view on the web or on their Android devices. Lastly, I integrated a system where you can request for adding legal channels where it would go into a system of review. Thank you all for your support on this project! Feel free to give feedback on anything else to improve in the future!
Ship #7: After reviewing community requests, I have updated the User Interface to be more friendly and easy to use. I also have updated the code so that the viewing of the channels would be less consumptions with CPU fluid....
|
1792975971.8122013
|
1793062371.8122013
|
|
22565
|
In This Economy!? by @OrangePainting | Stardance
|
OrangePainting
|
1
|
48.0
|
593
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T11:27:44Z", "hours": 48.0, "multiplier": 16.7, "payout": 593, "blessing": "neutral", "text": "I made an incremental clicker game where you experience the harsh results of applying to jobs. Work hard, apply a lot, and complete projects to maximize your chances of landing an offer! This game was created for The Very Serious Juniper Dev Game Jam, which meant I had 7 days to create a game with the theme “spin to win.” It was challenging to bring this all together in 7 or so days, but the community I had in-person and online helped me finish this project. I have had this game playtested a few times to be able to find soooo many bugs, graphical issues, and suggestions. Because of this, I am very proud of what I have made. Please play it on itch.io using the buttons, and feel free to check out the code in Github. This entire game was made using the Godot Game Engine.", "repo": "https://github.com/OrangePainting/in-this-economy", "demo": "https://orangepainting.itch.io/in-this-economy"}]...
|
[{"post_id": 17537, "ts": "202 [{"post_id": 17537, "ts": "2026-06-28T11:22:04Z", "hours": 0.3436, "text": "Final Devlog There was some issues with linking my game, but now everything is set, and I even did some more optimizations. Please play my game on itch.io, and you can see the github with all my code linked as well."}, {"post_id": 17031, "ts": "2026-06-27T17:18:33Z", "hours": 6.6281, "text": "In This Economy!? - Devlog 5 Yay, it’s done. Please play it and provide feedback so that I can make the game better in the future! Itch.io page is finished up Added 2 more tracks Added some more sound effects Added a tutorial at the beginning of the game Fixed some more bugs and graphical issues Game works on mobile, and desktop (mouse and spacebar works) Added achievements to track the player’s progress Added another minigame project, each with their own win and death screens now. Some Final QOL stuff to finish There are some minor graphical issues, but they are mainly unnoticable. I also plan to improve the performance of the game in the backend after this project is shipped :) Thanks!"}, {"post_id": 16124, "ts": "2026-06-26T06:51:54Z", "hours": 20.3653, "text": "In This Economy!? - Devlog 4 I did a ton of more changes again, but mainly it’s just Quality of Life stuff, mainly from my friends playtesting the game for me: Big Changes: 2 More music tracks and 10 more paper sounds added Added a start screen that players can type into Added a new project minigame to balance out the game in general Smaller Changes: The game is more balanced Replaced the Quit button with a Credits button because this game will be played on the web Changed the projects tab to be more understandable"}, {"post_id": 14705, "ts": "2026-06-23T22:06:09Z", "hours": 12.3967, "text": "[PLACEHOLDER] - Devlog 3 I added a bunch of things, because I’m nearing the deadline (only 2 days left :0) Big changes: Added a lot of SFX and Music, mostly done by me but also sourced from online Added more art for projects and the background using Aseprite Added Title Screen with start and quit buttons Added End Screen for when you win the game Made my first project for the projects tab Made more active UI How To Play section is complete Updated the layout entirely QOL stuff: Added settings for Music and SFX in the settings section Added Credits Entire project is organized to make things easier to access Scrolling background in the main menu, along with custom shader and particle animations just for fun Better animations so that things don’t suddenly appear or disappear Still have a lot more things to do, but it should be doable yay."}, {"post_id": 13377, "ts": "2026-06-21T22:19:18Z", "hours": 6.6122, "text": "[PLACEHOLDER] - Devlog 2 Added more functionality: There is now a tab system that players can click through Base upgrades are now available, and are functional Changed a few sprites to make disabled button sprites, and fit the theme more of applying to jobs I plan to add more places to spin, as that’s a key mechanic for this game. I want it to be as accessible too, so a tutorial is also necessary to make at some point."}, {"post_id": 12243, "ts": "2026-06-20T00:12:47Z", "hours": 1.9492, "text": "[PLACEHOLDER] - Devlog 1 Currently don’t have much done, but added some basic spin functionality, along with some pass and fail results. There isn’t much else yet, but I plan to add some upgrades and make the sprites a little better before the 7th day. Don’t have a name yet."}]...
|
Title: In This Economy!? by @OrangePainting | Star Title: In This Economy!? by @OrangePainting | Stardance
Devlogs:
[PLACEHOLDER] - Devlog 1 Currently don’t have much done, but added some basic spin functionality, along with some pass and fail results. There isn’t much else yet, but I plan to add some upgrades and make the sprites a little better before the 7th day. Don’t have a name yet.
[PLACEHOLDER] - Devlog 2 Added more functionality: There is now a tab system that players can click through Base upgrades are now available, and are functional Changed a few sprites to make disabled button sprites, and fit the theme more of applying to jobs I plan to add more places to spin, as that’s a key mechanic for this game. I want it to be as accessible too, so a tutorial is also necessary to make at some point.
[PLACEHOLDER] - Devlog 3 I added a bunch of things, because I’m nearing the deadline (only 2 days left :0) Big changes: Added a lot of SFX and Music, mostly done by me but also sourced from online Added more art for projects and the background using Aseprite Added Title Screen with start and quit buttons Added End Screen for when you win the game Made my first project for the projects tab Made more active UI How To Play section is complete Updated the layout entirely QOL stuff: Added settings for Music and SFX in the settings section Added Credits Entire project is organized to make things easier to access Scrolling background in the main menu, along with custom shader and particle animations just for fun Better animations so that things don’t suddenly appear or disappear Still have a lot more things to do, but it should be doable yay.
In This Economy!? - Devlog 4 I did a ton of more changes again, but mainly it’s just Quality of Life stuff, mainly from my friends playtesting the game for me: Big Changes: 2 More music tracks and 10 more paper sounds added Added a start screen that players can type into Added a new project minigame to balance out the game in general Smaller Changes: The game is more balanced Replaced the Quit button with a Credits button because this game will be played on the web Changed the projects tab to be more understandable
In This Economy!? - Devlog 5 Yay, it’s done. Please play it and provide feedback so that I can make the game better in the future! Itch.io page is finished up Added 2 more tracks Added some more sound effects Added a tutorial at the beginning of the game Fixed some more bugs and graphical issues Game works on mobile, and desktop (mouse and spacebar works) Added achievements to track the player’s progress Added another minigame project, each with their own win and death screens now. Some Final QOL stuff to finish There are some minor graphical issues, but they are mainly unnoticable. I also plan to improve the performance of the game in the backend after this project is shipped :) Thanks!
Final Devlog There was some issues with linking my game, but now everything is set, and I even did some more optimizations. Please play my game on itch.io, and you can see the github with all my code linked as well.
Ships:
I made an incremental clicker game where you experience the harsh results of applying to jobs. Work hard, apply a lot, and complete projects to maximize your chances of landing an offer! This game was created for The Very Serious Juniper Dev Game Jam, which meant I had 7 days to create a game with the theme “spin to win.” It was challenging to bring this all together in 7 or so days, but the community I had in-person and online helped me finish this project. I have had this game playtested a few times to be able to find soooo many bugs, graphical issues, and suggestions. Because of this, I am very proud of what I have made. Please play it on itch.io using the buttons, and feel free to check out the code in Github. This entire game was made using the Godot Game Engine....
|
1792968860.0355675
|
1793055260.0355675
|
|
8802
|
LoPose Cell Mapping by @yep | Stardance
|
yep
|
1
|
40.72
|
588
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-30T17:15:42Z", "hours": 37.0, "multiplier": 15.78, "payout": 588, "blessing": "neutral", "text": "Project Overview LoPose Tower Mapping is a project focused on mapping cellular tower data collected from phones to real-world tower locations. The goal is to collect cellular observations from Android devices, upload them to a database, and process those observations to estimate and match real tower positions. The project is currently experimental and mainly intended for private use. Project Structure The project is split into two main parts: Android app Go triangulation and tower-fitting tools Android App The Android app is the core data collector. It runs on a phone and gathers data about the currently connected cellular tower. This data is uploaded to a Supabase database and stored as observations. The app records data such as: connected cell ID network / area information GPS location GPS accuracy altitude vertical accuracy timing advance EARFCN PCI recorder time Currently, it collects and uploads data approximately every 5 seconds. Because of this, it can consume a significant amount of battery due to frequent GPS usage, cellular observation checks, background processing, and network uploads. APK Status The APK is not published. This is because the project is mainly for private use, and publishing it could introduce privacy risks due to the sensitive location and cellular data involved. For now, both the app and the database must be built and configured from the source code. Go Processing Tools The second part of the project is written in Go. These tools process the observations collected by the Android app and attempt to estimate real tower locations. The main approach uses 2D trilateration to approximate tower positions based on collected observations. There is also experimental 3D plane-intersection code for detecting towers in 3D space. However, it is not part of the main workflow because it generally performs worse than the 2D approach. Tower Matching After estimating tower locations, the Go tools attempt to match the calculated positions against a known tower-location database. This step connects collected observation data to real-world tower locations and computes more complete tower data, including estimated altitude, which is stored in a separate database. Current Limitations The project is still experimental and has several limitations: the APK is not publicly distributed the app can consume a high amount of battery the database must be configured manually tower matching is not always accurate the 3D approach exists but is not used in the main workflow the project handles sensitive location and cellular data altitude estimation is not always reliable and can sometimes be significantly inaccurate Things that were hard Things that I had hard were first setting up all the database exporting and transferring data, thinking and making all the ideas for how to use the 2D trilateration and 3D plane collision in the Go code. Adding the foreground service process in the Android app and making sure the TA updates on read also took some time, as well as creating the HTML converter for the point map in Go and all the steps to set up for the shipping of the project that require a very strict level of security and can leak personal data if I’m not careful in every move. Current Goal The current goal of LoPose mapping is to create a working private pipeline: phone observations → Supabase database → tower estimation → tower matching → complete tower location data The project is not intended to be a polished production application yet. It is an experimental system for tower mapping and location processing. This is also the first step in a two-part project aimed at developing location-finding methods for Android that do not rely on GPS, which is planned for future development.", "repo": "https://gitlab.com/yakla/LoPose", "demo": "https://yakla.gitlab.io/LoPose/"}]...
|
[{"post_id": 20251, "ts": "202 [{"post_id": 20251, "ts": "2026-07-01T19:55:07Z", "hours": 3.7203, "text": "Update on current status. firstly the project now will start slowly shifting to the second part of the location finding based on the towers found. this will be found in a different project in the name of lopose location estimation secondly updated the readme and some of my older devlogs for better looks and for improving in writing things in the readme format. i’m not very good at it so i hope to improve by doing it and make it looks better. lastly cleaned some of the code and improved other parts for shipment."}, {"post_id": 19111, "ts": "2026-06-30T10:57:34Z", "hours": 3.6836, "text": "Devlog — Preparing Stardance for Shipping Before shipping Stardance firstly I spent some time cleaning up the project and making it easier to understand . it include a readme and a git repo. before publishing this i needed to check nothing private is commited. with that i also added a README to the project so it will be easier how to set up things yourself. all and all i’m pretty proud of what i made. still i do have planes for more which i didn’t had time for. New features adding the 3d estimations in the future. currently most of them are wrong but some times they can actually work better then 2d. i did see in my debugger around 10 or more of the 146 which actually worked better then the 2d once and could be logged in the final estimation. for better scalability i want to add observation auto removal if around 7 observation of the same cell can’t find a real tower. this will just mean that if few observations were off you can try again until all of them will fit one."}, {"post_id": 18290, "ts": "2026-06-29T12:03:21Z", "hours": 4.4636, "text": "Demo website its not done but here i got a demo website to watch all the observations until now and the estimation. do note some of them are wrong because of the challenging conditions so i will use a verification method later for the perfect real tower location and data. https://yakla.gitlab.io/LoPose/"}, {"post_id": 16530, "ts": "2026-06-26T21:51:52Z", "hours": 1.9075, "text": "Solution was found!!! its a good day today . aperently ta can also be 150m sometimes :) it work the detection works almost perfectly in 2d. yay ! i found out there was a bug in android that i thought have been fixed but aperently not. so now it works wonderfly. well we got it : if you ask its around 30m from the target. and this is while tracking in a moving car. also sometime the 3d estimation works better but thats in rare cases. most of the time its not the most accurate."}, {"post_id": 15837, "ts": "2026-06-25T19:08:05Z", "hours": 6.6844, "text": "update on current Go code tower estimation been a while and a lot got done got some news good news and bad news the good news is that i finished with the 3d caculation and improve observation accaurcy. the bad news is that there is still something lacking making the location positioning almost the same and still not giving the right. at least not based on my knowlage but its has gotten better in some siturations. i still have hard time figuring things out but combining the 2d and 3d based on the terain does give a pretty good estimated location. i realy like the 3d aproach i went with. suprisingly its easier to understand how its works then the 2d one and didn’t add much compute (at least not if there are to much points found from plain colition which grows expenetialy seriously some got in the order of bilions. realy creazy stuff) anyway from now on ill try focusing more on the position estimation rather then the tower estimation, this will be more interesting for me after all the work on one thing and use some of the knowledge i got from estimating the towers. anyway having hard time finding a good picture for the progress so random go 3d positioning code down below :"}, {"post_id": 12733, "ts": "2026-06-20T20:22:39Z", "hours": 3.3836, "text": "Small update add height to observaions. well been a while since the last devlog. i needed a lot of thinking and planning for the 3d estimations so took me long enough. still didn’t get all the answers but i do got some updates. first i got few ideas i want to share. for the height there are few approaches but what i want to use will be based on my already existing 2d system. secondly i might try to find the height approximations of the tower based on flat 2d location estimation and using a location to height api and distance height correction its possible to find it with high accuracy using gradient descent . and thirdly i dont have any pictures to share so ill put a picture of a dog 🐶"}, {"post_id": 6316, "ts": "2026-06-10T17:06:08Z", "hours": 1.2122, "text": "Suspected issues after lots of observations got to 3 different issues with the current system first i need to account for ta deadzone which is surprisingly one of the most uncommon things which are near me. i need to account for the third dimension in the calculation i need to check for faulty observations of ta jumps it will take work but its feasible. looks like i have a very bumpy road ahead wish me luck😵💫. took me too much time to figure the first one out"}, {"post_id": 5770, "ts": "2026-06-09T17:53:40Z", "hours": 7.1014, "text": "improved database sync code and changed ui"}, {"post_id": 4781, "ts": "2026-06-08T08:33:54Z", "hours": 5.2897, "text": "organize app code and improved architecture"}, {"post_id": 3754, "ts": "2026-06-06T20:05:04Z", "hours": 3.0111, "text": "started using observations for the caculation. seems real world had more error then expected so change observation code to recored more and reduce the distance between each one"}, {"post_id": 2949, "ts": "2026-06-05T21:08:06Z", "hours": 0.6258, "text": "improving cell tower location finding algorithm"}]...
|
Title: LoPose Cell Mapping by @yep | Stardance
De Title: LoPose Cell Mapping by @yep | Stardance
Devlogs:
improving cell tower location finding algorithm
started using observations for the caculation. seems real world had more error then expected so change observation code to recored more and reduce the distance between each one
organize app code and improved architecture
improved database sync code and changed ui
Suspected issues after lots of observations got to 3 different issues with the current system first i need to account for ta deadzone which is surprisingly one of the most uncommon things which are near me. i need to account for the third dimension in the calculation i need to check for faulty observations of ta jumps it will take work but its feasible. looks like i have a very bumpy road ahead wish me luck😵💫. took me too much time to figure the first one out
Small update add height to observaions. well been a while since the last devlog. i needed a lot of thinking and planning for the 3d estimations so took me long enough. still didn’t get all the answers but i do got some updates. first i got few ideas i want to share. for the height there are few approaches but what i want to use will be based on my already existing 2d system. secondly i might try to find the height approximations of the tower based on flat 2d location estimation and using a location to height api and distance height correction its possible to find it with high accuracy using gradient descent . and thirdly i dont have any pictures to share so ill put a picture of a dog 🐶
update on current Go code tower estimation been a while and a lot got done got some news good news and bad news the good news is that i finished with the 3d caculation and improve observation accaurcy. the bad news is that there is still something lacking making the location positioning almost the same and still not giving the right. at least not based on my knowlage but its has gotten better in some siturations. i still have hard time figuring things out but combining the 2d and 3d based on the terain does give a pretty good estimated location. i realy like the 3d aproach i went with. suprisingly its easier to understand how its works then the 2d one and didn’t add much compute (at least not if there are to much points found from plain colition which grows expenetialy seriously some got in the order of bilions. realy creazy stuff) anyway from now on ill try focusing more on the position estimation rather then the tower estimation, this will be more interesting for me after all the work on one thing and use some of the knowledge i got from estimating the towers. anyway having hard time finding a good picture for the progress so random go 3d positioning code down below :
Solution was found!!! its a good day today . aperently ta can also be 150m sometimes :) it work the detection works almost perfectly in 2d. yay ! i found out there was a bug in android that i thought have been fixed but aperently not. so now it works wonderfly. well we got it : if you ask its around 30m from the target. and this is while tracking in a moving car. also sometime the 3d estimation works better but thats in rare cases. most of the time its not the most accurate.
Demo website its not done but here i got a demo website to watch all the observations until now and the estimation. do note some of them are wrong because of the challenging conditions so i will use a verification method later for the perfect real tower location and data. https://yakla.gitlab.io/LoPose/
Devlog — Preparing Stardance for Shipping Before shipping Stardance firstly I spent some time cleaning up the project and making it easier to understand . it include a readme and a git repo. before publishing this i needed to check nothing private is commited. with that i also added a README to the project so it will be easier how to set up things yourself. all and all i’m pretty proud of what i made. still i do have planes for more which i didn’t had time for. New features adding the 3d estimations in the future. currently most of them are wrong but some times they can actually work better then 2d. i did see in my debugger around 10 or more of the 146 which actually worked better then the 2d once and could be logged in the final estimation. for better scalability i want to add observation auto removal if around 7 observation of the same cell can’t find a real tower. this will just mean that if few observations were off you can try again until all of them will fit one.
Update on current status. firstly the project now will start slowly shifting to the second part of the location finding based on the towers found. this will be found in a different project in the name of lopose location estimation secondly updated the readme and some of my older devlogs for better looks and for improving in writing things in the readme format. i’m not very good at it so i hope to improve by doing it and make it looks better. lastly cleaned some of the code and improved other parts for shipment.
Ships:
Project Overview LoPose Tower Mapping is a project focused on mapping cellular tower data collected from phones to real-world tower locations. The goal is to collect cellular observations from Android devices, upload them to a database, and process those observations to estimate and match real tower positions. The project is currently experimental and mainly intended for private use. Project Structure The project is split into two main parts: Android app Go triangulation and tower-fitting tools Android App The Android app is the core data collector. It runs on a phone and gathers data about the currently connected cellular tower. This data is uploaded to a Supabase database and stored as observations. The app records data such as: connected cell ID network / area information GPS location GPS accuracy altitude vertical accuracy timing advance EARFCN PCI recorder time Currently, it collects and uploads data approximately every 5 seconds. Because of this, it can consume a significant amount of battery due to frequent GPS usage, cellular observation checks, background processing, and network uploads. APK Status The APK is not published. This is because the project is mainly for private use, and publishing it could introduce privacy risks due to the sensitive location and cellular data involved. For now, both the app and the database must be built and configured from the source code. Go Processing Tools The second part of the project is written in Go. These tools process the observations collected by the Android app and attempt to estimate real tower locations. The main approach uses 2D trilateration to approximate tower positions based on collected observations. There is also experimental 3D plane-intersection code for detecting towers in 3D space. However, it is not part of the main workflow because it generally performs worse than the 2D approach. Tower Matching After estimating tower locations, the Go tools attempt to match the calculated positions against a known tower-location database. This step connects collected observation data to real-world tower locations and computes more complete tower data, including estimated altitude, which is stored in a separate database. Current Limitations The project is still experimental and has several limitations: the APK is not publicly distributed the app can consume a high amount of battery the database must be configured manually tower matching is not always accurate the 3D approach exists but is not used in the main workflow the project handles sensitive location and cellular data altitude estimation is not always reliable and can sometimes be significantly inaccurate Things that were hard Things that I had hard were first setting up all the database exporting and transferring data, thinking and making all the ideas for how to use the 2D trilateration and 3D plane collision in the Go code. Adding the foreground service process in the Android app and making sure the TA updates on read also took some time, as well as creating the HTML converter for the point map in Go and all the steps to set up for the shipping of the project that require a very strict level of security and can leak personal data if I’m not careful in every move. Current Goal The current goal of LoPose mapping is to create a working private pipeline: phone observations → Supabase database → tower estimation → tower matching → complete tower location data The project is not intended to be a polished production application yet. It is an experimental system for tower mapping and location processing. This is also the first step in a two-part project aimed at developing location-finding methods for Android that do not rely on GPS, which is planned for future development....
|
1792986514.5819888
|
1793072914.5819888
|
|
58407
|
Tempo by @No1Michael | Stardance
|
No1Michael
|
2
|
50.53
|
587
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-09T11:48:23Z", "hours": 31.0, "multiplier": 13.83, "payout": 426, "blessing": "neutral", "text": "Tempo is now new and improved! Please tell me any feedback/changes/features you would like to see! Here are the changes from the last ship: WebMCP tutorial: Many people had a hard time using the demo on chrome since they didn’t know how to enable WebMCP on chrome, so now theres a tutorial Tempo Spotlight Onboarding: Spotlight onboarding since some people didn’t know there was also the core calendar functionality as well as the Webmcp avaiable. New WebMCP commands: Thank you do the person who said to add a command which could push/reschedule consecutive events I think that’s very smart. I also added a command which checks for the next avaible free time of a certain length as well. Small UI Changes which makes it more obvious that the agent panel doesn’t have to be there.", "repo": "https://github.com/wamichae1/Tempo-v2", "demo": "https://wamichae1.github.io/Tempo-v2/"}, {"ship_num": 2, "ts": "2026-09-07T00:26:05Z", "hours": 16.0, "multiplier": 10.22, "payout": 161, "blessing": "neutral", "text": "Tempo DEMO! Hope you find it useful. Enable WebMCP on chrome and upload an api key, or use Codex’s in app broswer or any other compatible agent! PS: if you’re a student and just got a stupid photo for your timetable, Tempo is perfect tool to turn that photo into a calendar which you can upload to Google calendar or any other calendar app which is ics compatible!", "repo": "https://github.com/wamichae1/Tempo-v2", "demo": "https://wamichae1.github.io/Tempo-v2/"}]...
|
[{"post_id": 65157, "ts": "202 [{"post_id": 65157, "ts": "2026-09-10T03:12:10Z", "hours": 3.5311, "text": "Another feature I’m currently working on is having a preview after importing an ICS file. It would show conflicts with current scheduling and information and count of events imported"}, {"post_id": 64735, "ts": "2026-09-09T11:21:36Z", "hours": 8.7233, "text": "I think tempo is ready to be shipped again! Here are the new changes: WebMCP tutorial: Many people had a hard time using the demo on chrome since they didn’t know how to enable WebMCP on chrome, so now theres a tutorial Tempo Spotlight Onboarding: Spotlight onboarding since some people didn’t know there was also the core calendar functionality as well as the Webmcp avaiable. New WebMCP commands: Thank you do the person who said to add a command which could push/reschedule consecutive events I think that’s very smart. I also added a command which checks for the next avaible free time of a certain length as well."}, {"post_id": 64428, "ts": "2026-09-08T20:00:46Z", "hours": 8.0519, "text": "Tempo can now push many consecutive events together through the new command tempo_push_events! Thank to whoever suggested this since this is a great change. Im also working on tempo_find_free_time which would find the most recent free time of a certain length"}, {"post_id": 64159, "ts": "2026-09-08T11:36:26Z", "hours": 8.9569, "text": "I think the fact that Tempo a calendar usable with ai has obscured the fact that its also a normal working calendar. The spotlight guide/tutorial of core functionality is now finally fixed!"}, {"post_id": 63983, "ts": "2026-09-08T02:29:14Z", "hours": 2.1128, "text": "Thank you so much for all your feedback! The tutorial is now implement on how to enabled WebMCP for Chrome, and also a general onboarding tutorial!"}, {"post_id": 63892, "ts": "2026-09-07T22:18:50Z", "hours": 2.5567, "text": "Theres now a tutorial for how to enable WebMCP and how to use your own API key! Thank you so much for the feedback many more improvements coming soon!"}, {"post_id": 63587, "ts": "2026-09-07T14:44:40Z", "hours": 0.375, "text": "Revised the Readme to the current project state! I hope to add more features such as speech to text to make it even better!"}, {"post_id": 63266, "ts": "2026-09-07T00:22:54Z", "hours": 1.1814, "text": "after implementing a feature, theres always something that goes wrong. after rewriting workflows, testing in the browser on different screen sizes, i’m finally satisfied with the changes!"}, {"post_id": 63235, "ts": "2026-09-06T22:38:29Z", "hours": 1.6036, "text": "The demo is now working! Chrome has WebMCP turned off by default, so either turn it on or use an in app browser like the Codex Browser to access WebMCP capabilities!"}, {"post_id": 63165, "ts": "2026-09-06T20:22:22Z", "hours": 2.8614, "text": "Finally! Tempo now works with OpenRouter, Gemini, and OpenAI. I’m still figuring out how imma do Nvidia NIM since Tempo currently runs without backend :/"}, {"post_id": 62926, "ts": "2026-09-06T13:53:24Z", "hours": 6.7303, "text": "Tempo’s BYO Api Key now has OpenAI available. Other providers such as Opencode, OpenRouter and Nvidia NIM will be available soon!"}, {"post_id": 62605, "ts": "2026-09-06T02:24:28Z", "hours": 2.2903, "text": "Tempo currently is good, but I think I know what would make it great! Adding BYO Api Key and Speech to text would make this even better to use!"}, {"post_id": 61918, "ts": "2026-09-05T02:49:11Z", "hours": 1.0983, "text": "With OpenAI WebMCP challenge wrapped up, Tempo’s first demo is ready!"}]...
|
Title: Tempo by @No1Michael | Stardance
Devlogs:
Title: Tempo by @No1Michael | Stardance
Devlogs:
With OpenAI WebMCP challenge wrapped up, Tempo’s first demo is ready!
Tempo currently is good, but I think I know what would make it great! Adding BYO Api Key and Speech to text would make this even better to use!
Tempo’s BYO Api Key now has OpenAI available. Other providers such as Opencode, OpenRouter and Nvidia NIM will be available soon!
Finally! Tempo now works with OpenRouter, Gemini, and OpenAI. I’m still figuring out how imma do Nvidia NIM since Tempo currently runs without backend :/
The demo is now working! Chrome has WebMCP turned off by default, so either turn it on or use an in app browser like the Codex Browser to access WebMCP capabilities!
after implementing a feature, theres always something that goes wrong. after rewriting workflows, testing in the browser on different screen sizes, i’m finally satisfied with the changes!
Revised the Readme to the current project state! I hope to add more features such as speech to text to make it even better!
Theres now a tutorial for how to enable WebMCP and how to use your own API key! Thank you so much for the feedback many more improvements coming soon!
Thank you so much for all your feedback! The tutorial is now implement on how to enabled WebMCP for Chrome, and also a general onboarding tutorial!
I think the fact that Tempo a calendar usable with ai has obscured the fact that its also a normal working calendar. The spotlight guide/tutorial of core functionality is now finally fixed!
Tempo can now push many consecutive events together through the new command tempo_push_events! Thank to whoever suggested this since this is a great change. Im also working on tempo_find_free_time which would find the most recent free time of a certain length
I think tempo is ready to be shipped again! Here are the new changes: WebMCP tutorial: Many people had a hard time using the demo on chrome since they didn’t know how to enable WebMCP on chrome, so now theres a tutorial Tempo Spotlight Onboarding: Spotlight onboarding since some people didn’t know there was also the core calendar functionality as well as the Webmcp avaiable. New WebMCP commands: Thank you do the person who said to add a command which could push/reschedule consecutive events I think that’s very smart. I also added a command which checks for the next avaible free time of a certain length as well.
Another feature I’m currently working on is having a preview after importing an ICS file. It would show conflicts with current scheduling and information and count of events imported
Ships:
Tempo DEMO! Hope you find it useful. Enable WebMCP on chrome and upload an api key, or use Codex’s in app broswer or any other compatible agent! PS: if you’re a student and just got a stupid photo for your timetable, Tempo is perfect tool to turn that photo into a calendar which you can upload to Google calendar or any other calendar app which is ics compatible!
Tempo is now new and improved! Please tell me any feedback/changes/features you would like to see! Here are the changes from the last ship: WebMCP tutorial: Many people had a hard time using the demo on chrome since they didn’t know how to enable WebMCP on chrome, so now theres a tutorial Tempo Spotlight Onboarding: Spotlight onboarding since some people didn’t know there was also the core calendar functionality as well as the Webmcp avaiable. New WebMCP commands: Thank you do the person who said to add a command which could push/reschedule consecutive events I think that’s very smart. I also added a command which checks for the next avaible free time of a certain length as well. Small UI Changes which makes it more obvious that the agent panel doesn’t have to be there....
|
1792875228.6328158
|
1793739228.6328158
|
|
28091
|
NetSim Pro by @NITHIN | Stardance
|
NITHIN
|
1
|
55.0
|
585
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-06T16:16:21Z", "hours": 55.0, "multiplier": 14.85, "payout": 585, "blessing": "neutral", "text": "NetSim Pro is an interactive, browser-based computer network simulator engineered to model complex data flows, packet routing, and network security behaviors in real time. Built as a zero-dependency client-side application, it implements custom routing engines including OSPF Dijkstra Shortest Path First (SPF) pathfinders and RIP distance-vector algorithms, alongside automated Layer 7 DHCP discover-ack loops. The workspace features a highly interactive SVG drag-and-drop canvas where users can play around with custom topologies, link devices via Ethernet, fiber, or serial media cables, configure interface states, and inspect diagnostic headers layer-by-layer (Layers 1, 2, 3, 4, 7) using an integrated OSI Stack Inspector. The primary engineering challenge was bundling the entire canvas state machine, packet scheduler, and protocol simulation logic into three static frontend files, optimized by extending runtime Tailwind CSS configurations in-browser to style the dark Matte Obsidian and Clay Sand interface. To demonstrate its interactive capabilities, the simulator features an engaging Security Lab simulating DDoS flood vectors and ARP cache poisoning (MITM) attacks. Users can explore and test the system by generating pings, observing performance telemetry like CPU spikes on the dashboard, and deploying live mitigations like Firewall Rate Limiters and Switch Dynamic ARP Inspection (DAI) on the fly.", "repo": "https://github.com/Nithinfgs/NetSim-Pro", "demo": "https://vermillion-begonia-30b9a7.netlify.app/"}]...
|
[{"post_id": 23553, "ts": "202 [{"post_id": 23553, "ts": "2026-07-06T16:11:59Z", "hours": 9.0, "text": "I have Just fully finished"}, {"post_id": 23337, "ts": "2026-07-06T07:03:53Z", "hours": 13.0, "text": "Made some visual refinements to the project’s color scheme by switching to the Matte Obsidian & Clay Sand color palette. The updated palette provides a cleaner, more modern look while improving overall visual consistency across the application. Changes Made Updated the application to use the Matte Obsidian & Clay Sand color palette. Applied the same color palette changes to the GitHub repository. Updated the App.js file to reflect the new theme and related changes. This update focuses on improving the application’s appearance while keeping the existing functionality unchanged"}, {"post_id": 22632, "ts": "2026-07-05T05:51:47Z", "hours": 16.0, "text": "Today I worked on the JavaScript file, focusing on implementing the application logic. The CSS styling is complete, so my current priority is building and refining the functionality, connecting interactions, and ensuring everything works as expected. The next step is to finish the remaining JavaScript logic, test the features, and resolve any issues that come up during implementation."}, {"post_id": 21929, "ts": "2026-07-04T03:54:02Z", "hours": 14.0, "text": "My index file is done and have started working on my style.css and have pushed the index and readme to github"}, {"post_id": 18402, "ts": "2026-06-29T15:18:02Z", "hours": 0.0, "text": "Started working on NetSim Pro today! The project is still in its very early stages, and I’m currently building the foundation. Right now I’m working on the index.html file, setting up the initial structure, layout, and project organization before moving on to styling and functionality. The goal is to create a browser-based network simulator where users can design network topologies, configure devices like routers and switches, and visualize packet flow in real time. There’s a lot planned, but first I’m focusing on getting a clean and scalable frontend structure in place."}]...
|
Title: NetSim Pro by @NITHIN | Stardance
Devlogs: Title: NetSim Pro by @NITHIN | Stardance
Devlogs:
Started working on NetSim Pro today! The project is still in its very early stages, and I’m currently building the foundation. Right now I’m working on the index.html file, setting up the initial structure, layout, and project organization before moving on to styling and functionality. The goal is to create a browser-based network simulator where users can design network topologies, configure devices like routers and switches, and visualize packet flow in real time. There’s a lot planned, but first I’m focusing on getting a clean and scalable frontend structure in place.
My index file is done and have started working on my style.css and have pushed the index and readme to github
Today I worked on the JavaScript file, focusing on implementing the application logic. The CSS styling is complete, so my current priority is building and refining the functionality, connecting interactions, and ensuring everything works as expected. The next step is to finish the remaining JavaScript logic, test the features, and resolve any issues that come up during implementation.
Made some visual refinements to the project’s color scheme by switching to the Matte Obsidian & Clay Sand color palette. The updated palette provides a cleaner, more modern look while improving overall visual consistency across the application. Changes Made Updated the application to use the Matte Obsidian & Clay Sand color palette. Applied the same color palette changes to the GitHub repository. Updated the App.js file to reflect the new theme and related changes. This update focuses on improving the application’s appearance while keeping the existing functionality unchanged
I have Just fully finished
Ships:
NetSim Pro is an interactive, browser-based computer network simulator engineered to model complex data flows, packet routing, and network security behaviors in real time. Built as a zero-dependency client-side application, it implements custom routing engines including OSPF Dijkstra Shortest Path First (SPF) pathfinders and RIP distance-vector algorithms, alongside automated Layer 7 DHCP discover-ack loops. The workspace features a highly interactive SVG drag-and-drop canvas where users can play around with custom topologies, link devices via Ethernet, fiber, or serial media cables, configure interface states, and inspect diagnostic headers layer-by-layer (Layers 1, 2, 3, 4, 7) using an integrated OSI Stack Inspector. The primary engineering challenge was bundling the entire canvas state machine, packet scheduler, and protocol simulation logic into three static frontend files, optimized by extending runtime Tailwind CSS configurations in-browser to style the dark Matte Obsidian and Clay Sand interface. To demonstrate its interactive capabilities, the simulator features an engaging Security Lab simulating DDoS flood vectors and ARP cache poisoning (MITM) attacks. Users can explore and test the system by generating pings, observing performance telemetry like CPU spikes on the dashboard, and deploying live mitigations like Firewall Rate Limiters and Switch Dynamic ARP Inspection (DAI) on the fly....
|
1792882125.30198
|
1793746125.30198
|
|
1910
|
Planet Trotter by @Atlus | Stardance
|
Atlus
|
1
|
59.0
|
583
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-06T19:40:39Z", "hours": 59.0, "multiplier": 9.84, "payout": 583, "blessing": "neutral", "text": "This is a very early version of my game Planet Trotter. I am very proud of the progress I’ve made as before this I didn’t know anything of game development. The game is still very early in development, but I thought I’d put something out and ship a working version. have fun playing my game! :D", "repo": "https://github.com/Atlus06/Planet-Trotter", "demo": "https://atlus06.itch.io/planet-trotter"}]...
|
[{"post_id": 56284, "ts": "202 [{"post_id": 56284, "ts": "2026-08-28T00:04:50Z", "hours": 6.2547, "text": "I tried adding a new game button. It did not work. the last for the last month or so and recorded 6 hours, I’ve been trying to create a system in my game to reset the player’s save. I SEVERELY underestimated how hard it’d be. It really is weird what gets you caught up in a project, if you wanna know more about my prosses and possibly help you can read below. So first I thought it would be as easy as deleting the save file that is already on the player’s system, that not only crashed, but after I fixed all of the bugs and errors I noticed it completely destroyed the saving system and the level loading system with it. after hours which turned to weeks of debugging, I figured it wasn’t worth it. At least not right now, this is a challenge I’ll tackle another day, or at least when I don’t have a time limit. But as they say, failure is apart of the process and I’m okay with that."}, {"post_id": 43368, "ts": "2026-08-08T15:57:40Z", "hours": 8.6789, "text": "Changes: Added state machine Added NPC with dialogue Added more menu options Added Debug mode"}, {"post_id": 36707, "ts": "2026-07-28T22:47:47Z", "hours": 6.5531, "text": "Changes: Added jump cutting - make platforming feel better/ more responsive added settings menu added controls rebinding menu"}, {"post_id": 32625, "ts": "2026-07-21T22:15:39Z", "hours": 2.1347, "text": "Changes: Made a checkpoint System After disagreeing with a bunch of tutorials I decided to reuse a system I already had. Used the code to set player position at the start of the level and a global variables scripts to remember the position of the checkpoint and respawn the player when their equaled to 0 Made a “return to checkpoint” button to give use to the checkpoints in the levels due to there being nothing that will kill the player yet"}, {"post_id": 30765, "ts": "2026-07-18T16:59:21Z", "hours": 2.66, "text": "Changes: Added UI with a working health, dash cooldown and collectable counting system -Tweaked dash adding a slight start lag and changed the way cooldowns work"}, {"post_id": 29869, "ts": "2026-07-17T00:59:28Z", "hours": 7.8633, "text": "Changes: Made 5 levels Finished first reeditions of levels that will be included in the demo Small Tweaks: Made wall slide way faster Changed how dash cooldown works Here are 2 level layouts and their renditions/ filled out versions"}, {"post_id": 24941, "ts": "2026-07-08T20:30:51Z", "hours": 3.9625, "text": "Changes Reworked double jump Other small Tweaks"}, {"post_id": 23631, "ts": "2026-07-06T18:23:24Z", "hours": 2.4867, "text": "Changes: -Added a placeholder level transition/ loading screen -Finally made level spawn points work -Added textures/ replaced placeholder platforms with actual assets The 2 photos are an example of making something unnecessarily complex. The few lines of code I used where the whole reason that the level spawn points took weeks the work out. So make sure you understand your code so you really know what’s actually helping and what’s bloat and holding you back."}, {"post_id": 19254, "ts": "2026-06-30T14:51:35Z", "hours": 2.7731, "text": "Changes: Added a Health System Re-added the Collectable counter Life Update: To explain the big gap in updates, I got burnout. while working on the project I ended up working too hard and too fast, and a certain point I stopped to take a break and couldn’t bring myself to work, but I’m back now and won’t let that happen again."}, {"post_id": 9581, "ts": "2026-06-15T23:19:01Z", "hours": 1.7408, "text": "Devlog 8: Did: -Started w/ fixing coyote time Reworked jump to make coyote time work Remade double jump by making double jump variable -Make System for changing levels Used signals w/ parameters to send path to next level -Fixed up collectables Turned of collisions for .1 seconds so collectables won’t be collected on start up (hopefully)"}, {"post_id": 9273, "ts": "2026-06-15T15:57:48Z", "hours": 2.4539, "text": "Changes: -Cleaned up backend more -added coyote time -make scene/ level changing work"}, {"post_id": 7007, "ts": "2026-06-11T19:14:31Z", "hours": 2.5389, "text": "Changes: -organized file system and scene tree"}, {"post_id": 2797, "ts": "2026-06-05T16:43:33Z", "hours": 2.0925, "text": "Changes: Changed dash mechanic so dashing downwards is possible Added sliding mechanic The sliding was strange to add, but I ended up figuring it out. Adding this I’ll make the game’s movement feel more fluid, like celeste. Later I’ll make a momentum system to increase the slide and the dash distance depending on speed"}, {"post_id": 2643, "ts": "2026-06-05T09:25:51Z", "hours": 1.1644, "text": "Changes: -Added camera zoom -Added collectable counter The camera zoom feature is mainly for testing, but I though while I work on a map system I’ll give a pseudo map that make traversing the test area easier."}, {"post_id": 1702, "ts": "2026-06-03T21:19:03Z", "hours": 3.9031, "text": "Changes: -Polished movement -player jumps off of walls -dash is stronger -Added collectables -Added camera movement The collectable system was the most challenges from collision errors to tracking & counting collectables, but I did figure it out and learned how to signal between scripts at the same time. I also learned about the camera positioning smoothing option in Godot which cut out a lot of learning and trial & error that I would need to figure out."}, {"post_id": 416, "ts": "2026-06-01T20:23:52Z", "hours": 2.0153, "text": "I and a couple friends are going to create a game about venturing unknown planets in search of a new earth to inhabit To start off I created a simple movement system with a double jump, dash and wall cling mechanic. the dash was hardest to implement because of all the small hiccups and things to keep track of, but I did manage to get a hold of it after a lot of trial and error. I started this project with the aim to learn composition and I’m happy that I was able to implement that into this project. If you don’t know composition makes your code more readable and modular. As you can tell there aren’t any sprites, but there will be in the future, but for now the Godot logo will be my placeholder."}]...
|
Title: Planet Trotter by @Atlus | Stardance
Devlo Title: Planet Trotter by @Atlus | Stardance
Devlogs:
I and a couple friends are going to create a game about venturing unknown planets in search of a new earth to inhabit To start off I created a simple movement system with a double jump, dash and wall cling mechanic. the dash was hardest to implement because of all the small hiccups and things to keep track of, but I did manage to get a hold of it after a lot of trial and error. I started this project with the aim to learn composition and I’m happy that I was able to implement that into this project. If you don’t know composition makes your code more readable and modular. As you can tell there aren’t any sprites, but there will be in the future, but for now the Godot logo will be my placeholder.
Changes: -Polished movement -player jumps off of walls -dash is stronger -Added collectables -Added camera movement The collectable system was the most challenges from collision errors to tracking & counting collectables, but I did figure it out and learned how to signal between scripts at the same time. I also learned about the camera positioning smoothing option in Godot which cut out a lot of learning and trial & error that I would need to figure out.
Changes: -Added camera zoom -Added collectable counter The camera zoom feature is mainly for testing, but I though while I work on a map system I’ll give a pseudo map that make traversing the test area easier.
Changes: Changed dash mechanic so dashing downwards is possible Added sliding mechanic The sliding was strange to add, but I ended up figuring it out. Adding this I’ll make the game’s movement feel more fluid, like celeste. Later I’ll make a momentum system to increase the slide and the dash distance depending on speed
Changes: -organized file system and scene tree
Changes: -Cleaned up backend more -added coyote time -make scene/ level changing work
Devlog 8: Did: -Started w/ fixing coyote time Reworked jump to make coyote time work Remade double jump by making double jump variable -Make System for changing levels Used signals w/ parameters to send path to next level -Fixed up collectables Turned of collisions for .1 seconds so collectables won’t be collected on start up (hopefully)
Changes: Added a Health System Re-added the Collectable counter Life Update: To explain the big gap in updates, I got burnout. while working on the project I ended up working too hard and too fast, and a certain point I stopped to take a break and couldn’t bring myself to work, but I’m back now and won’t let that happen again.
Changes: -Added a placeholder level transition/ loading screen -Finally made level spawn points work -Added textures/ replaced placeholder platforms with actual assets The 2 photos are an example of making something unnecessarily complex. The few lines of code I used where the whole reason that the level spawn points took weeks the work out. So make sure you understand your code so you really know what’s actually helping and what’s bloat and holding you back.
Changes Reworked double jump Other small Tweaks
Changes: Made 5 levels Finished first reeditions of levels that will be included in the demo Small Tweaks: Made wall slide way faster Changed how dash cooldown works Here are 2 level layouts and their renditions/ filled out versions
Changes: Added UI with a working health, dash cooldown and collectable counting system -Tweaked dash adding a slight start lag and changed the way cooldowns work
Changes: Made a checkpoint System After disagreeing with a bunch of tutorials I decided to reuse a system I already had. Used the code to set player position at the start of the level and a global variables scripts to remember the position of the checkpoint and respawn the player when their equaled to 0 Made a “return to checkpoint” button to give use to the checkpoints in the levels due to there being nothing that will kill the player yet
Changes: Added jump cutting - make platforming feel better/ more responsive added settings menu added controls rebinding menu
Changes: Added state machine Added NPC with dialogue Added more menu options Added Debug mode
I tried adding a new game button. It did not work. the last for the last month or so and recorded 6 hours, I’ve been trying to create a system in my game to reset the player’s save. I SEVERELY underestimated how hard it’d be. It really is weird what gets you caught up in a project, if you wanna know more about my prosses and possibly help you can read below. So first I thought it would be as easy as deleting the save file that is already on the player’s system, that not only crashed, but after I fixed all of the bugs and errors I noticed it completely destroyed the saving system and the level loading system with it. after hours which turned to weeks of debugging, I figured it wasn’t worth it. At least not right now, this is a challenge I’ll tackle another day, or at least when I don’t have a time limit. But as they say, failure is apart of the process and I’m okay with that.
Ships:
This is a very early version of my game Planet Trotter. I am very proud of the progress I’ve made as before this I didn’t know anything of game development. The game is still very early in development, but I thought I’d put something out and ship a working version. have fun playing my game! :D...
|
1792968592.7421088
|
1793054992.7421088
|
|
56712
|
one file game challenge by @OrderDanie | Stardance
|
OrderDanie
|
4
|
38.0
|
582
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-11T16:51:38Z", "hours": 4.0, "multiplier": 19.61, "payout": 78, "blessing": "neutral", "text": "school has won guys🥀🥀, this is the final version, hope you like it, D, loging off for this year", "repo": "https://github.com/OrderDanie/one-file-challenge", "demo": "https://pixel-drifter.netlify.app/"}, {"ship_num": 2, "ts": "2026-09-05T00:32:01Z", "hours": 17.0, "multiplier": 17.58, "payout": 300, "blessing": "neutral", "text": "v3, and prolly finale, so pls rate this as high as posible, SO, one file chalenge comes to an end, a full drift delivery game, where u drift to get money, as u are broke ofc, u can upgrade the shop, visiting the 2nd city after buying all cars in city 1, go to race city (no police), and ofc TRUCKSS, can hold more than one pkg, up to 11 when updgraded, all vehiculs can now be moded, and paintjobs are free, ofc, race ai is less unstable, but works, and that pretty much it for this update, dont forget to rait this the best u can, tyy all for the support", "repo": "https://github.com/OrderDanie/one-file-challenge", "demo": "https://pixel-drifter.netlify.app/"}, {"ship_num": 3, "ts": "2026-09-03T03:23:32Z", "hours": 7.0, "multiplier": 18.19, "payout": 133, "blessing": "neutral", "text": "udate 2.0, added ai races, ai traffic, anf lowred the hitbox, simce some players had skill issues, also added another city to the left, racess, still in beta, added the inital d car, ou are a delivery guy dilevering pizza, FOR MONEY ofc, the better the car and timing the more u get paid, try to no commit crimes, there is a wanted sys", "repo": "https://github.com/OrderDanie/one-file-challenge", "demo": "https://pixel-drifter.netlify.app/"}, {"ship_num": 4, "ts": "2026-09-01T18:23:00Z", "hours": 10.0, "multiplier": 13.96, "payout": 71, "blessing": "neutral", "text": "I MADE a game, BUT, its only ONE SINGULAR FILE, its a dilvery game, where you deliver stuff with a drift car, you can get money for faster delevires, money for close call hits with npcs, BACKWARDS trucks,2 cities, if you are a mod and you are reading this, pls, try the full game, i have put my soul into it", "repo": "https://github.com/OrderDanie/one-file-challenge", "demo": "https://pixel-drifter.netlify.app/"}]...
|
[{"post_id": 63232, "ts": "202 [{"post_id": 63232, "ts": "2026-09-06T22:31:00Z", "hours": 0.7, "text": "hit boxes are now smaller! also the police will try to hunt you down now instead of just ramming you"}, {"post_id": 62519, "ts": "2026-09-05T22:39:14Z", "hours": 0.9667, "text": "I have successfully added the FULL chapter one… Almost 3hours T_T,but deff worth it,yall better like that shi,ty yall i finally got my thingyy,hope i get it asap"}, {"post_id": 62424, "ts": "2026-09-05T19:26:40Z", "hours": 2.3, "text": "ehm ehm, srry about the uhh, not going to post cuz i ran out o ideas i got one… A DAM STOTYYY, its cringe asf but hey whatever i can add i will"}, {"post_id": 61868, "ts": "2026-09-05T00:26:44Z", "hours": 0.8392, "text": "u can now HORN, for no reason at all, added on screen gps instruction, ik, useless, made houses light up in the night, also now water has its own particles and will slow you down, trucks are now more fun and stable, also added a dev console, if this post gets 10 likes, ill post the shortcut, or u can smash ur keyboard or go look for in in 6k lines of code"}, {"post_id": 61791, "ts": "2026-09-04T21:27:25Z", "hours": 1.2408, "text": "i added the mobile support for my budget guys, and also sumbitted the game to a web game platform, just a try cuz why not ;>, wish me luck, this might be my final ship, cuz im mostly done with the game"}, {"post_id": 61495, "ts": "2026-09-04T13:16:22Z", "hours": 9.0542, "text": "i locked in so hard i forgor i had a life T-T, i added TONS of trucks, a pit stop so u can repair mid run, also added DRIFT zones, that are in the way of you delivery, that give you money if u drift in em, not to mention the upgradable sop, so u can earn money faster now, MONEEEEYYY, login off for today"}, {"post_id": 60973, "ts": "2026-09-03T17:32:38Z", "hours": 2.27, "text": "add heat lvl 3, helis appear, after escaping the cops, you have to keep running, so the hils doesnt find you, if it does, the heat will jump back to lvl 3, and you will be charged with resisting arrest, also added TRUCKS, with up to 5 cargo slots, you have to stay stationary at the pizza place to load up all the packages, then you run back to all the houses to deliver, ou have a totale timer, not a timer for each package, ai races are still broken tho"}, {"post_id": 60844, "ts": "2026-09-03T13:55:17Z", "hours": 3.6914, "text": "improved the ai racer, added checker flags as a start race, racers are represented and orange dots"}, {"post_id": 60628, "ts": "2026-09-03T03:02:56Z", "hours": 1.4772, "text": "added new racing city, ai races are in beta rn, so dont try em, yet, added the inital d drift car, and added weather and power ups tages, fixed minimap"}, {"post_id": 60568, "ts": "2026-09-03T00:03:40Z", "hours": 0.9283, "text": "hiyaaa, i added a navigation sys, on road navigation, since many found it hard to get to quests, it uses points i put all across the map turns, and a calc for the distance of the closest turn, theen puts a direct path to it, technically this SHOULD NOT be working, but it does, so ill leave it like this and get to other stuff, the code is 5k lines, moving throught it is a pain, might need to optimize some stuff, i can see why this isnt the standard"}, {"post_id": 60479, "ts": "2026-09-02T20:34:17Z", "hours": 2.0889, "text": "i kept coding none stop and forgor to test, also ty everyone i really appreciate the support, update coming as soon as i fixed this T-T"}, {"post_id": 60153, "ts": "2026-09-02T10:41:18Z", "hours": 1.5697, "text": "i was working on the game, till i reiceived this notification, talkin abt some 100pcnt ai code, well my hackatime says otherwise bru, honestly im happy someone sees this quality impossible, that they named it ai, but hey i need to ship this"}, {"post_id": 59899, "ts": "2026-09-01T22:17:44Z", "hours": 0.5239, "text": "added environment items, cones have physics, lakes slow down the car, puddles and oil leaks slightly diverts the car"}, {"post_id": 59826, "ts": "2026-09-01T20:02:53Z", "hours": 0.7342, "text": "added detailed cops models"}, {"post_id": 59745, "ts": "2026-09-01T17:54:22Z", "hours": 1.2389, "text": "added cops, better cam, better drift, enegine repair sys, npc truck, quests, reworked buildings, map overlay, added powerups like shield, speed, repair. and now visual packages on top of the car"}, {"post_id": 59663, "ts": "2026-09-01T16:06:32Z", "hours": 0.4044, "text": "added a whole other city you can acces by a highway after buying all the cars in city one, and for @kmdw , @nicklogan1412 , i am keeping the skinny houses, as an easter egg, YOUR names will be added later to the game, comment what would you like to put next to your name, i prefer no pics, but no pressure"}, {"post_id": 59616, "ts": "2026-09-01T15:12:06Z", "hours": 1.4344, "text": "added local saves, impact particles, rain weather that makes the roads slipery, a game intro page, a reward sys for dodging cars/drifting, if you have any suggestions, PLEASE SAY THEM IM RUNNING OUT OF IDEAS"}, {"post_id": 59562, "ts": "2026-09-01T13:32:09Z", "hours": 0.5942, "text": "added night time, and the delivery ticket ui, also added npc cars, couldn’t get them to do much since I’m limited by the one file rule, but they follow a mapped route, stop if the player gets in front of them or hits them, then continue once the player has moves , also added nitro for all cars, and added more cars that each have a benefit, except for the 1st one ofc, that’s just trash, this update is mostly just ui"}, {"post_id": 59513, "ts": "2026-09-01T11:49:22Z", "hours": 0.3953, "text": "added these little arrows to show the target building, yellow for the pizza shop, and red for the delivery house"}, {"post_id": 59467, "ts": "2026-09-01T10:31:35Z", "hours": 1.2678, "text": "i cant really draw or make detailed stuff, so i drew some houses, and gave them a code to randomize color, width, and height, but um, forgot to set minimun…"}, {"post_id": 59424, "ts": "2026-09-01T08:20:47Z", "hours": 2.8131, "text": "THE prototype is readyyy, go check it out in my profile https://pixel-drifter.netlify.app/"}, {"post_id": 59294, "ts": "2026-09-01T00:34:32Z", "hours": 0.2817, "text": "u cant blaame me i cant draw"}, {"post_id": 59245, "ts": "2026-08-31T22:37:57Z", "hours": 0.2633, "text": "OMG I HATE YOU"}, {"post_id": 59127, "ts": "2026-08-31T19:11:20Z", "hours": 0.5669, "text": "umm, help? friction is 100 btw i tried everything"}, {"post_id": 58889, "ts": "2026-08-31T13:46:02Z", "hours": 0.3997, "text": "for the one viewer that saw this, i added a map, yay"}, {"post_id": 58833, "ts": "2026-08-31T12:39:08Z", "hours": 0.5197, "text": "ckeck this out, looks simple, but too more than 30 mins btw"}]...
|
Title: one file game challenge by @OrderDanie | St Title: one file game challenge by @OrderDanie | Stardance
Devlogs:
ckeck this out, looks simple, but too more than 30 mins btw
for the one viewer that saw this, i added a map, yay
umm, help? friction is 100 btw i tried everything
OMG I HATE YOU
u cant blaame me i cant draw
THE prototype is readyyy, go check it out in my profile https://pixel-drifter.netlify.app/
i cant really draw or make detailed stuff, so i drew some houses, and gave them a code to randomize color, width, and height, but um, forgot to set minimun…
added these little arrows to show the target building, yellow for the pizza shop, and red for the delivery house
added night time, and the delivery ticket ui, also added npc cars, couldn’t get them to do much since I’m limited by the one file rule, but they follow a mapped route, stop if the player gets in front of them or hits them, then continue once the player has moves , also added nitro for all cars, and added more cars that each have a benefit, except for the 1st one ofc, that’s just trash, this update is mostly just ui
added local saves, impact particles, rain weather that makes the roads slipery, a game intro page, a reward sys for dodging cars/drifting, if you have any suggestions, PLEASE SAY THEM IM RUNNING OUT OF IDEAS
added a whole other city you can acces by a highway after buying all the cars in city one, and for @kmdw , @nicklogan1412 , i am keeping the skinny houses, as an easter egg, YOUR names will be added later to the game, comment what would you like to put next to your name, i prefer no pics, but no pressure
added cops, better cam, better drift, enegine repair sys, npc truck, quests, reworked buildings, map overlay, added powerups like shield, speed, repair. and now visual packages on top of the car
added detailed cops models
added environment items, cones have physics, lakes slow down the car, puddles and oil leaks slightly diverts the car
i was working on the game, till i reiceived this notification, talkin abt some 100pcnt ai code, well my hackatime says otherwise bru, honestly im happy someone sees this quality impossible, that they named it ai, but hey i need to ship this
i kept coding none stop and forgor to test, also ty everyone i really appreciate the support, update coming as soon as i fixed this T-T
hiyaaa, i added a navigation sys, on road navigation, since many found it hard to get to quests, it uses points i put all across the map turns, and a calc for the distance of the closest turn, theen puts a direct path to it, technically this SHOULD NOT be working, but it does, so ill leave it like this and get to other stuff, the code is 5k lines, moving throught it is a pain, might need to optimize some stuff, i can see why this isnt the standard
added new racing city, ai races are in beta rn, so dont try em, yet, added the inital d drift car, and added weather and power ups tages, fixed minimap
improved the ai racer, added checker flags as a start race, racers are represented and orange dots
add heat lvl 3, helis appear, after escaping the cops, you have to keep running, so the hils doesnt find you, if it does, the heat will jump back to lvl 3, and you will be charged with resisting arrest, also added TRUCKS, with up to 5 cargo slots, you have to stay stationary at the pizza place to load up all the packages, then you run back to all the houses to deliver, ou have a totale timer, not a timer for each package, ai races are still broken tho
i locked in so hard i forgor i had a life T-T, i added TONS of trucks, a pit stop so u can repair mid run, also added DRIFT zones, that are in the way of you delivery, that give you money if u drift in em, not to mention the upgradable sop, so u can earn money faster now, MONEEEEYYY, login off for today
i added the mobile support for my budget guys, and also sumbitted the game to a web game platform, just a try cuz why not ;>, wish me luck, this might be my final ship, cuz im mostly done with the game
u can now HORN, for no reason at all, added on screen gps instruction, ik, useless, made houses light up in the night, also now water has its own particles and will slow you down, trucks are now more fun and stable, also added a dev console, if this post gets 10 likes, ill post the shortcut, or u can smash ur keyboard or go look for in in 6k lines of code
ehm ehm, srry about the uhh, not going to post cuz i ran out o ideas i got one… A DAM STOTYYY, its cringe asf but hey whatever i can add i will
I have successfully added the FULL chapter one… Almost 3hours T_T,but deff worth it,yall better like that shi,ty yall i finally got my thingyy,hope i get it asap
hit boxes are now smaller! also the police will try to hunt you down now instead of just ramming you
Ships:
I MADE a game, BUT, its only ONE SINGULAR FILE, its a dilvery game, where you deliver stuff with a drift car, you can get money for faster delevires, money for close call hits with npcs, BACKWARDS trucks,2 cities, if you are a mod and you are reading this, pls, try the full game, i have put my soul into it
udate 2.0, added ai races, ai traffic, anf lowred the hitbox, simce some players had skill issues, also added another city to the left, racess, still in beta, added the inital d car, ou are a delivery guy dilevering pizza, FOR MONEY ofc, the better the car and timing the more u get paid, try to no commit crimes, there is a wanted sys
v3, and prolly finale, so pls rate this as high as posible, SO, one file chalenge comes to an end, a full drift delivery game, where u drift to get money, as u are broke ofc, u can upgrade the shop, visiting the 2nd city after buying all cars in city 1, go to race city (no police), and ofc TRUCKSS, can hold more than one pkg, up to 11 when updgraded, all vehiculs can now be moded, and paintjobs are free, ofc, race ai is less unstable, but works, and that pretty much it for this update, dont forget to rait this the best u can, tyy all for the support
school has won guys🥀🥀, this is the final version, hope you like it, D, loging off for this year...
|
1792878720.092558
|
1793742720.092558
|
|
121
|
Image to Equation converter by @cziwu2010 | Starda Image to Equation converter by @cziwu2010 | Stardance...
|
cziwu2010
|
2
|
36.0
|
581
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-07T05:37:27Z", "hours": 27.0, "multiplier": 18.45, "payout": 445, "blessing": "neutral", "text": "A program that converts an image into a graph. Improved: Reduced equation output amount by almost half, allowing more detailed graphs without crashing desmos New architecture debug option What’s next: color", "repo": "https://github.com/cziwu12/Raster-Image-to-Graph-Converter-2", "demo": "https://github.com/cziwu12/Raster-Image-to-Graph-Converter-2/releases/tag/v1.1"}, {"ship_num": 2, "ts": "2026-06-04T17:39:26Z", "hours": 9.0, "multiplier": 15.16, "payout": 136, "blessing": "neutral", "text": "My first major project: a raster image to equation converter. It converts the upload image into a set of equations that when plotted shows the edges of the image. There’s still limitations from the programme but I continue on iterating and improving on it.", "repo": "https://github.com/cziwu12/Raster-Image-to-Graph-Converter-2", "demo": "https://github.com/cziwu12/Raster-Image-to-Graph-Converter-2/releases/tag/v1.1"}]...
|
[{"post_id": 77483, "ts": "202 [{"post_id": 77483, "ts": "2026-10-07T05:30:07Z", "hours": 3.6806, "text": "v1.1 is complete: https://github.com/cziwu12/Raster-Image-to-Graph-Converter-2/releases/tag/v1.1"}, {"post_id": 75474, "ts": "2026-09-30T06:00:02Z", "hours": 11.6989, "text": "ok so i just relogged into stardance and i forgot to devlog it so now i have 11hours and 34minutes unlogged. So basically i tested multiple methods to reduce the equation count and also trying to get rid of the potrace double line and I finally did it. The previous version using potrace outputed 1398 equations while the new one outputed only 649. Almost halfed the previous amount. And now it’s just a single line compared to the double lines that potrace outputed. I’m planning to put this on browser so it’s easily accessable. (first image: previous ver, second image: new reduced ver third image: potrace double line output fourth image: reduced ver) to see the code: skanny.py https://github.com/cziwu12/Raster-Image-to-Graph-Converter-2"}, {"post_id": 57379, "ts": "2026-08-29T14:42:40Z", "hours": 10.7344, "text": "update: Improved the converter to output wayyyyyy fewer equations while maintaining graph quality and improved performance"}, {"post_id": 4138, "ts": "2026-06-07T10:34:49Z", "hours": 0.4356, "text": "turned this into an executable"}, {"post_id": 2255, "ts": "2026-06-04T17:23:28Z", "hours": 1.5056, "text": "okay"}, {"post_id": 1314, "ts": "2026-06-03T07:17:24Z", "hours": 3.1794, "text": "Will prob release this week. Almost done"}, {"post_id": 238, "ts": "2026-06-01T11:18:07Z", "hours": 4.5825, "text": "in progress"}]...
|
Title: Image to Equation converter by @cziwu2010 | Title: Image to Equation converter by @cziwu2010 | Stardance
Devlogs:
in progress
Will prob release this week. Almost done
okay
turned this into an executable
update: Improved the converter to output wayyyyyy fewer equations while maintaining graph quality and improved performance
ok so i just relogged into stardance and i forgot to devlog it so now i have 11hours and 34minutes unlogged. So basically i tested multiple methods to reduce the equation count and also trying to get rid of the potrace double line and I finally did it. The previous version using potrace outputed 1398 equations while the new one outputed only 649. Almost halfed the previous amount. And now it’s just a single line compared to the double lines that potrace outputed. I’m planning to put this on browser so it’s easily accessable. (first image: previous ver, second image: new reduced ver third image: potrace double line output fourth image: reduced ver) to see the code: skanny.py https://github.com/cziwu12/Raster-Image-to-Graph-Converter-2
v1.1 is complete: https://github.com/cziwu12/Raster-Image-to-Graph-Converter-2/releases/tag/v1.1
Ships:
My first major project: a raster image to equation converter. It converts the upload image into a set of equations that when plotted shows the edges of the image. There’s still limitations from the programme but I continue on iterating and improving on it.
A program that converts an image into a graph. Improved: Reduced equation output amount by almost half, allowing more detailed graphs without crashing desmos New architecture debug option What’s next: color...
|
1792986985.823659
|
1793073385.823659
|
|
18084
|
Powerblock Games by @Powerblock | Stardance
|
Powerblock
|
1
|
40.95
|
580
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-15T21:37:29Z", "hours": 40.0, "multiplier": 17.07, "payout": 580, "blessing": "neutral", "text": "I FINALLY finished my Game Distribution and loading platform: Powerblock Games Here’s what it is: You can play other users games easily, just search and click Approved devs can publish their own games using our own tools Works in the Web If you know Godot, I encourage you to make a game!", "repo": "https://github.com/Powerblock2000/PowerblockGames", "demo": "https://games.powerblock2000.com/"}]...
|
[{"post_id": 31366, "ts": "202 [{"post_id": 31366, "ts": "2026-07-19T18:08:02Z", "hours": 0.9514, "text": "EDIT: The server was down for the last day or 2 but should be up now EDIT: The game should be working now Game is currently not working because nest is down or at least not working for me. Once this is fixed I should have it back up and running within a few hours!"}, {"post_id": 29060, "ts": "2026-07-15T18:28:38Z", "hours": 1.4111, "text": "Working on migrating all server code to nest. SO CLOSE! Ugly but I dont really care ¯ ( ツ)/¯"}, {"post_id": 28614, "ts": "2026-07-14T23:35:58Z", "hours": 1.4769, "text": "SOOO CLOSE TO BEING FINISHED JUST POLISH LEFT not much else 🤷♂️"}, {"post_id": 28459, "ts": "2026-07-14T18:27:22Z", "hours": 1.1892, "text": "FINALLY added being able to open games ALMOST DONE with this"}, {"post_id": 28386, "ts": "2026-07-14T16:44:47Z", "hours": 5.2564, "text": "Added a search feature and you can now request developer access!!!!"}, {"post_id": 21841, "ts": "2026-07-03T23:44:19Z", "hours": 3.1942, "text": "Finished Hackclub auth, also finished universal games list so people can search for games."}, {"post_id": 21119, "ts": "2026-07-02T22:22:49Z", "hours": 7.4269, "text": "Still trying to figure out nakama custom auth… I HATE THIS"}, {"post_id": 17793, "ts": "2026-06-28T18:39:16Z", "hours": 4.1983, "text": "Finally finished Dev panel. Almost done with UX. Working on the developer Godot plugin so they can make games and access Nakama features. Then I just have to work on downloading and loading games on the client!"}, {"post_id": 15188, "ts": "2026-06-24T18:06:10Z", "hours": 5.1853, "text": "Created a dev panel This will allow verified devs to publish their games to the whole platform You will be able to: Select your .pck (or .zip) file to upload and put onto the platform, check analytics, update your game, and more."}, {"post_id": 13254, "ts": "2026-06-21T18:20:49Z", "hours": 2.12, "text": "Finished friends tab FINALLY! Features: Add friends Accept requests Remove friends Cancel requests Everything you’d expect! This took SOO LONG!!!! I hope you like it :)"}, {"post_id": 10988, "ts": "2026-06-18T00:34:05Z", "hours": 1.0689, "text": "Working on settings rn, starting w/ frontend Current page ideas: Admin panel (me only) Privacy settings Video settings audio settings account settings so its looking kinda empty :( Also got a small menu working with different username sizes👍"}, {"post_id": 10765, "ts": "2026-06-17T17:48:18Z", "hours": 1.6572, "text": "Working on main menu, just got reviving an image from a Nakama storage object working (don’t worry these are just test images)"}, {"post_id": 10132, "ts": "2026-06-16T18:54:42Z", "hours": 1.3383, "text": "Finished onboarding, pretty simple, just updating some variables but it looks cool :)"}, {"post_id": 10059, "ts": "2026-06-16T17:10:51Z", "hours": 2.3383, "text": "Finally got authentication with Nakama working, at first, I have just had to fix SOOO many bugs where it would try to use an invalid session ID. Error handling is also a NIGHTMARE. But I think I got it working. (video shows auth via session tokens)"}, {"post_id": 8368, "ts": "2026-06-13T22:16:33Z", "hours": 2.0797, "text": "Working on authentication (it sucks)"}]...
|
Title: Powerblock Games by @Powerblock | Stardance Title: Powerblock Games by @Powerblock | Stardance
Devlogs:
Working on authentication (it sucks)
Finally got authentication with Nakama working, at first, I have just had to fix SOOO many bugs where it would try to use an invalid session ID. Error handling is also a NIGHTMARE. But I think I got it working. (video shows auth via session tokens)
Finished onboarding, pretty simple, just updating some variables but it looks cool :)
Working on main menu, just got reviving an image from a Nakama storage object working (don’t worry these are just test images)
Working on settings rn, starting w/ frontend Current page ideas: Admin panel (me only) Privacy settings Video settings audio settings account settings so its looking kinda empty :( Also got a small menu working with different username sizes👍
Finished friends tab FINALLY! Features: Add friends Accept requests Remove friends Cancel requests Everything you’d expect! This took SOO LONG!!!! I hope you like it :)
Created a dev panel This will allow verified devs to publish their games to the whole platform You will be able to: Select your .pck (or .zip) file to upload and put onto the platform, check analytics, update your game, and more.
Finally finished Dev panel. Almost done with UX. Working on the developer Godot plugin so they can make games and access Nakama features. Then I just have to work on downloading and loading games on the client!
Still trying to figure out nakama custom auth… I HATE THIS
Finished Hackclub auth, also finished universal games list so people can search for games.
Added a search feature and you can now request developer access!!!!
FINALLY added being able to open games ALMOST DONE with this
SOOO CLOSE TO BEING FINISHED JUST POLISH LEFT not much else 🤷♂️
Working on migrating all server code to nest. SO CLOSE! Ugly but I dont really care ¯ ( ツ)/¯
EDIT: The server was down for the last day or 2 but should be up now EDIT: The game should be working now Game is currently not working because nest is down or at least not working for me. Once this is fixed I should have it back up and running within a few hours!
Ships:
I FINALLY finished my Game Distribution and loading platform: Powerblock Games Here’s what it is: You can play other users games easily, just search and click Approved devs can publish their own games using our own tools Works in the Web If you know Godot, I encourage you to make a game!...
|
1792990274.0919404
|
1793076674.0919404
|
|
55363
|
One-To-One by @tiyas | Stardance
|
tiyas
|
1
|
35.0
|
580
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-18T04:04:31Z", "hours": 35.0, "multiplier": 16.61, "payout": 580, "blessing": "neutral", "text": "i have made a simple webRtc bassed chat app. the special thing of this webside is that, as soon as both friends will close the chat the messages are gone for forever, no scope of being stored anywhere. and even no servers in between, i would call it power-user stuff, because it is so bare-metal that you have to exchange the WebRTC tokens yourself. if you are testing this, try this in two different tabs insted of running on two devices. it will work perfectly fine. i am proud of, its my first react app, and i have made it quite good enough i have fixed some of them myself i have spent a lot of time in it and build sucessful running app i have completed it within 20 days… The improvements in quality of life are, got one private and secure and serverless chatting platform one more step towards off-grid life improvement in privacy. data will be stored nowhere to be honest, my true motivation was, to give young couples a platform to talk privately and with zero risk of someone seeing their old messages… and i think, from a psychological point of view, most of the fight happens in young couples when they see some hurtful message again and again, but this has no way to see that, when you talk , only then you are able to see the chat , as soon as that ends, your brain also stops processing those , because you know they are completely gone.. these messages are stored in your device’s ram, and as soon as the program stops running, the data are gone.", "repo": "https://github.com/Tiyasbanerjee/One-To-One", "demo": "https://chat.tiyas.uk/"}]...
|
[{"post_id": 69935, "ts": "202 [{"post_id": 69935, "ts": "2026-09-18T02:59:53Z", "hours": 1.3969, "text": "i have added the loading animations, and now i am filling out the docs a little. i have also published it onto my own domain, chat.tiyas.uk next i am going to ship it."}, {"post_id": 69503, "ts": "2026-09-17T06:11:38Z", "hours": 2.0442, "text": "I have ran the 2ed successful test. and now its live at, “ https://tiyasbanerjee.github.io/One-To-One/ ” i have added some features like sending messages on enter press, scrool at the end as soon as new message comes or send. set up the github stuffs for deploying. and fixed some bugs like some scroll bars were showing where they should not.. its still not ready to ship now, i want it to look better and be more robust towards edge cases."}, {"post_id": 69077, "ts": "2026-09-16T10:25:47Z", "hours": 5.0767, "text": "at last!! at last i have fixed the bugs 😭😭😭😭. i cant explain the satisfaction level. now messages are sent successfully. But it is still not ready to ship now. i need to harden the logic and count all the edge cases too… but i cant explain the joy i am feeling. it might took 50% of the total time spent on this project. i thought that Ui would be the hardest part. but no, establishing the connections and managing states and variables and logic flow was the hardest, i mean most draining. while doing this i had lost my motivation many times, i thought i cant do, i am failing… but i stick to it. and it worked😭 ohh man!!!!"}, {"post_id": 68474, "ts": "2026-09-15T05:25:12Z", "hours": 8.8919, "text": "It took me quite some time to stitch the underlying connections. these includes, token compressition showing token on linkbox writing the logic of the information flow. writing the logic of showing a message on the message box. some Ui fixes etc etc… i think this is the hardest part… and still its not done, i still have to write the logic of how to take input of peer token, and then have to cheak if things are working properly, i think it would have lots of bugs, i have to fix them…"}, {"post_id": 66382, "ts": "2026-09-12T05:47:15Z", "hours": 1.0128, "text": "worked on the message layouts, worked on the incoming and outgoing message layouts did some styling modifications on the connect page spend time learning about back-end connections…"}, {"post_id": 65844, "ts": "2026-09-11T07:57:21Z", "hours": 1.7792, "text": "deigned some amount of the chat interface. like adding the input field , making it responsive making the button responsive. next steps are, making the layout for the messages, like how they user will see messages… receiving the messages and sending it…"}, {"post_id": 65783, "ts": "2026-09-11T04:53:13Z", "hours": 5.5283, "text": "new updates are worked on responsiveness Worked on degine and styleings Worked on annimations. and next steps are establishing the webRtc conection building the chat interface."}, {"post_id": 64132, "ts": "2026-09-08T10:23:02Z", "hours": 4.5331, "text": "i have switched from basic html css to React. and i have made the first page/welcome page of it. Next, I will make the connection establishment page, and then the chart interface.."}, {"post_id": 61304, "ts": "2026-09-04T04:41:24Z", "hours": 0.9969, "text": "made some UI , and did some UI fixes…"}, {"post_id": 59938, "ts": "2026-09-02T00:19:44Z", "hours": 2.0017, "text": "i have Build some of the UI for the chart interface and wrote some docs… will work farther on the WebRtc connection next."}, {"post_id": 59390, "ts": "2026-09-01T05:27:46Z", "hours": 1.2881, "text": "trying to code the handshake part but i am facing a lot of issues in this webrtc connections ,mainly in the handshake process…"}, {"post_id": 58722, "ts": "2026-08-31T08:28:00Z", "hours": 0.3353, "text": "refactored the code base because i am going to build it from scratch now."}]...
|
Title: One-To-One by @tiyas | Stardance
Devlogs:
Title: One-To-One by @tiyas | Stardance
Devlogs:
refactored the code base because i am going to build it from scratch now.
trying to code the handshake part but i am facing a lot of issues in this webrtc connections ,mainly in the handshake process…
i have Build some of the UI for the chart interface and wrote some docs… will work farther on the WebRtc connection next.
made some UI , and did some UI fixes…
i have switched from basic html css to React. and i have made the first page/welcome page of it. Next, I will make the connection establishment page, and then the chart interface..
new updates are worked on responsiveness Worked on degine and styleings Worked on annimations. and next steps are establishing the webRtc conection building the chat interface.
deigned some amount of the chat interface. like adding the input field , making it responsive making the button responsive. next steps are, making the layout for the messages, like how they user will see messages… receiving the messages and sending it…
worked on the message layouts, worked on the incoming and outgoing message layouts did some styling modifications on the connect page spend time learning about back-end connections…
It took me quite some time to stitch the underlying connections. these includes, token compressition showing token on linkbox writing the logic of the information flow. writing the logic of showing a message on the message box. some Ui fixes etc etc… i think this is the hardest part… and still its not done, i still have to write the logic of how to take input of peer token, and then have to cheak if things are working properly, i think it would have lots of bugs, i have to fix them…
at last!! at last i have fixed the bugs 😭😭😭😭. i cant explain the satisfaction level. now messages are sent successfully. But it is still not ready to ship now. i need to harden the logic and count all the edge cases too… but i cant explain the joy i am feeling. it might took 50% of the total time spent on this project. i thought that Ui would be the hardest part. but no, establishing the connections and managing states and variables and logic flow was the hardest, i mean most draining. while doing this i had lost my motivation many times, i thought i cant do, i am failing… but i stick to it. and it worked😭 ohh man!!!!
I have ran the 2ed successful test. and now its live at, “ https://tiyasbanerjee.github.io/One-To-One/ ” i have added some features like sending messages on enter press, scrool at the end as soon as new message comes or send. set up the github stuffs for deploying. and fixed some bugs like some scroll bars were showing where they should not.. its still not ready to ship now, i want it to look better and be more robust towards edge cases.
i have added the loading animations, and now i am filling out the docs a little. i have also published it onto my own domain, chat.tiyas.uk next i am going to ship it.
Ships:
i have made a simple webRtc bassed chat app. the special thing of this webside is that, as soon as both friends will close the chat the messages are gone for forever, no scope of being stored anywhere. and even no servers in between, i would call it power-user stuff, because it is so bare-metal that you have to exchange the WebRTC tokens yourself. if you are testing this, try this in two different tabs insted of running on two devices. it will work perfectly fine. i am proud of, its my first react app, and i have made it quite good enough i have fixed some of them myself i have spent a lot of time in it and build sucessful running app i have completed it within 20 days… The improvements in quality of life are, got one private and secure and serverless chatting platform one more step towards off-grid life improvement in privacy. data will be stored nowhere to be honest, my true motivation was, to give young couples a platform to talk privately and with zero risk of someone seeing their old messages… and i think, from a psychological point of view, most of the fight happens in young couples when they see some hurtful message again and again, but this has no way to see that, when you talk , only then you are able to see the chat , as soon as that ends, your brain also stops processing those , because you know they are completely gone.. these messages are stored in your device’s ram, and as soon as the program stops running, the data are gone....
|
1793004461.404778
|
1793090861.404778
|
|
38416
|
Badgeware Tufty WeatherStation by @nouxinf | Stard Badgeware Tufty WeatherStation by @nouxinf | Stardance...
|
nouxinf
|
1
|
31.0
|
579
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-10T19:20:46Z", "hours": 31.0, "multiplier": 18.44, "payout": 579, "blessing": "neutral", "text": "I just finished making the Badgeware Tufty Weatherstation. The Badgeware Tufty is a cool digital conference badge made by Pimoroni that comes with a nice screen, buttons, a battery and the RP2350 chip. This makes it fairly capable at 8MiB of RAM, meaning it could be used for just about anything (yes 8MiB is enough). The default firmware has an apps launcher that can launch user-made MicroPython apps, like Weatherstation. Weatherstation is essentially a weather app. The two main features are 1. the multisensor strip: you can plug in a Pimoroni made multisensor stick to get temperature, humidity and air pressure data and 2. internet data from openmeteo. you set the coordinates for your locations in options.json (typing them in manually with the tufty’s 5 buttons would be a pain), it fetches place names for the coordinates (usually suburb, city) through OpenStreetMap Nominatim and displays them or you can set a nickname to override it. it then fetches the weather data from openmeteo and displays temperature, precipitation and wind direction with cool pixel art icons. it updates weather data every 10 minutes, but you can manually refresh by pressing A. The other two screens is the vitals screen, which displays battery percentage, though it doesn’t display the percentage if it’s charging due to a bug with either the firmware or the hardware where it always shows 100% even though its not, the amount of storage space left and the amount of ram free. The next screen after that is attribution info, giving credit to OpenStreetMap and Open-meteo which is legally required. If you’re reading this you probably don’t have a Badgeware Tufty and that’s ok because I forked the official Badgeware Web Emulator at https://try.badgewa.re/ (with permission “I think it’s acceptable to consider it MIT, but either way fork away- and enjoy!” - Gadgetoid, the developer of the simulator on the pimoroni discord) and updated it with some info, installation instructions, and an options.json setup tool. Try it out at https://weatherstation.nouxinf.net/ or press the “Try Project” button! Note that Vitals info data and sensor data are made up (obviously). I hope you enjoy this project!", "repo": "https://github.com/nouxinf/weatherstation", "demo": "https://weatherstation.nouxinf.net/"}]...
|
[{"post_id": 65536, "ts": "202 [{"post_id": 65536, "ts": "2026-09-10T18:54:32Z", "hours": 3.0042, "text": "Devlog #11 of the Badgeware Tufty Weatherstation (prob the final one) In this devlog I: added this vitals screen which includes battery percentage, flash storage space used and the amount of PSRAM free. It doesn’t show the percentage when its plugged in because for some reason the battery reader always gives 100% when its plugged in published the weatherstation website to https://weatherstation.nouxinf.net/ fix a few bugs"}, {"post_id": 64339, "ts": "2026-09-08T17:18:47Z", "hours": 2.3861, "text": "Devlog #10 of the Badgeware Tufty Weatherstation In this devlog I: added some more effective error handling moved a bunch of functions out of __init__.py into their own files to make the code cleaner add an attribution screen (pictured) to be legally compliant with copyright"}, {"post_id": 63098, "ts": "2026-09-06T18:20:34Z", "hours": 6.5119, "text": "Devlog #9 of the Badgeware Tufty Weatherstation In this devlog I: stripped down the fork of the badgeware web emulator to onl have the badge screen and console log then added content to the homepage talking about the app added a new page with installation instructions for users unfamiliar with the badgeware tufty in that tutorial page i made a tool that generates options.json configurations where you can set temperature unit and pick out coordinates on a map"}, {"post_id": 59070, "ts": "2026-08-31T17:54:39Z", "hours": 1.4375, "text": "Devlog #8 of the Badgeware Tufty Weatherstation In this devlog I: forked the badgeware web simulator with permission modified the backend slightly to “work on my machine” also modified the actual badge code to use badgeware libraries instead of micropython libraries to let it work on the emulator added a github action to automatically update whats on the simulator repo when a new weatherstation release comes out things i’ve yet to add: automatic time zone setting in the simulator: will add that by overriding secrets.py somehow reskinning the whole site to be a weatherstation homepage"}, {"post_id": 58207, "ts": "2026-08-30T15:49:08Z", "hours": 2.3372, "text": "Devlog #7 of the Badgeware Tufty Weatherstation In this devlog I: Made it that the A button allows refetching weather data Automatically refresh weather data every 10 minutes Have a text display that shows when the weather was last updated (respecting TIMEZONE setting in secrets.py) Fixed some issues so now most of the time you can plug and replug the multisensor stick. Doesn’t work very reliably though due to issues where the cable is half-connected yet the badge is trying to read from the sensor."}, {"post_id": 53955, "ts": "2026-08-24T17:43:27Z", "hours": 0.3058, "text": "Devlog #6 of the Badgeware Tufty Weatherstation In this devlog I: removed unused functions that were replaced by native 3.0 functions made it so that the app works without internet so you can just use it as a sensor"}, {"post_id": 53936, "ts": "2026-08-24T17:12:48Z", "hours": 4.6589, "text": "Devlog #5 of the Badgeware Tufty Weatherstation Stuff added since the last devlog: Updated firmware version: While I was working on a side project Pimoroni made new firmware versions so I ported it from 2.0.2 to 3.0.2 though I’m pretty sure it works with 3.0.0 3.0.1 Along with that I changed some functions to native ones like word wrapping and centering text that came with 3.0 I added a temperature icon to the internet weather, and added precipitation and wind direction both with icons (pictured) I modified someone else’s screenshot code to work on windows and have a few extra features, which is how the screenshot attached was taken. Added comment boxes generated by one of my side projects, https://commentboxgenerator.lemonsite.uk/ Write a readme and roadmap Things that have yet to be added (from the roadmap) Offline support internet is optional just like sensor Update weather every 1 hour or on request- Some basic forecast information (e.g. weather icons per day of the week) in another screen Web editor for options.json through Flask or Bun (preferrably something self contained though) Badge diagnostics page (e.g. storage space, RAM, battery) Fork badgeware web simulator to work with weatherstation by adding proxy"}, {"post_id": 39425, "ts": "2026-08-02T11:36:26Z", "hours": 2.7283, "text": "Devlog #4 of the Badgeware Tufty Weatherstation Stuff added in this devlog: Indicator to show how many pages there are and which one you’re on 16 weather icons that map to the WMO codes that openmeteo gives Temperature display (that respects units set in options.json) Potentially next I’ll code a precipitation levels display, and maybe some charts that show temperature and precipitation throughout the day when you press B."}, {"post_id": 37151, "ts": "2026-07-29T17:22:28Z", "hours": 4.6317, "text": "Devlog #3 of the Badgeware Tufty Weatherstation The Badgeware Tufty is this cool conference badge from Pimoroni that is programmable with MicroPython. I’ve been making a Weather Station app for it, which can use a Pimoroni multisensor kit to show temperature, humidity and air pressure, but soon it will be able to fetch weather data around the world from the internet. In the previous devlogs I added the multisensor screen. Now I’ve started working on the weather from the internet part. So far it gets coordinates from options.json, and can show the suburb/neighbourhood and the city from Openstreetmap Nominatim. You can also optionally set a nickname for a location. Next up I’ll actually be putting the weather info in. That’ll involve getting data from Openmeteo, drawing a bunch of pixel art icons for each (~80) weather codes and rendering out the data."}, {"post_id": 34081, "ts": "2026-07-24T15:30:16Z", "hours": 0.5519, "text": "Added an option to use Fahrenheit or Kelvin instead of Celsius by editing options.json on the computer"}, {"post_id": 34047, "ts": "2026-07-24T14:28:24Z", "hours": 2.8611, "text": "I’m making a weather app for the Badgeware Tufty, a cool badge wearable that’s programmable with MicroPython! First step that I’ve done for my app is coding a screen that shows the temperature, humidity and air pressure sensed from the multisensor strip that comes with the Badgeware Tufty STEM kit. I’ve made 30 pixel art icons so far that scale with the values. Next up I’ll be adding the option to grab weather data from the internet using Openmeteo API for the weather data and Openstreetmap nominatim to get a place name. The locations would have to be configured through a JSON config file on the computer as the 5 buttons on the Tufty aren’t really enough for this kind of input. Maybe there could be some web UI to pick coordinates off a map and update the config file?"}]...
|
Title: Badgeware Tufty WeatherStation by @nouxinf Title: Badgeware Tufty WeatherStation by @nouxinf | Stardance
Devlogs:
I’m making a weather app for the Badgeware Tufty, a cool badge wearable that’s programmable with MicroPython! First step that I’ve done for my app is coding a screen that shows the temperature, humidity and air pressure sensed from the multisensor strip that comes with the Badgeware Tufty STEM kit. I’ve made 30 pixel art icons so far that scale with the values. Next up I’ll be adding the option to grab weather data from the internet using Openmeteo API for the weather data and Openstreetmap nominatim to get a place name. The locations would have to be configured through a JSON config file on the computer as the 5 buttons on the Tufty aren’t really enough for this kind of input. Maybe there could be some web UI to pick coordinates off a map and update the config file?
Added an option to use Fahrenheit or Kelvin instead of Celsius by editing options.json on the computer
Devlog #3 of the Badgeware Tufty Weatherstation The Badgeware Tufty is this cool conference badge from Pimoroni that is programmable with MicroPython. I’ve been making a Weather Station app for it, which can use a Pimoroni multisensor kit to show temperature, humidity and air pressure, but soon it will be able to fetch weather data around the world from the internet. In the previous devlogs I added the multisensor screen. Now I’ve started working on the weather from the internet part. So far it gets coordinates from options.json, and can show the suburb/neighbourhood and the city from Openstreetmap Nominatim. You can also optionally set a nickname for a location. Next up I’ll actually be putting the weather info in. That’ll involve getting data from Openmeteo, drawing a bunch of pixel art icons for each (~80) weather codes and rendering out the data.
Devlog #4 of the Badgeware Tufty Weatherstation Stuff added in this devlog: Indicator to show how many pages there are and which one you’re on 16 weather icons that map to the WMO codes that openmeteo gives Temperature display (that respects units set in options.json) Potentially next I’ll code a precipitation levels display, and maybe some charts that show temperature and precipitation throughout the day when you press B.
Devlog #5 of the Badgeware Tufty Weatherstation Stuff added since the last devlog: Updated firmware version: While I was working on a side project Pimoroni made new firmware versions so I ported it from 2.0.2 to 3.0.2 though I’m pretty sure it works with 3.0.0 3.0.1 Along with that I changed some functions to native ones like word wrapping and centering text that came with 3.0 I added a temperature icon to the internet weather, and added precipitation and wind direction both with icons (pictured) I modified someone else’s screenshot code to work on windows and have a few extra features, which is how the screenshot attached was taken. Added comment boxes generated by one of my side projects, https://commentboxgenerator.lemonsite.uk/ Write a readme and roadmap Things that have yet to be added (from the roadmap) Offline support internet is optional just like sensor Update weather every 1 hour or on request- Some basic forecast information (e.g. weather icons per day of the week) in another screen Web editor for options.json through Flask or Bun (preferrably something self contained though) Badge diagnostics page (e.g. storage space, RAM, battery) Fork badgeware web simulator to work with weatherstation by adding proxy
Devlog #6 of the Badgeware Tufty Weatherstation In this devlog I: removed unused functions that were replaced by native 3.0 functions made it so that the app works without internet so you can just use it as a sensor
Devlog #7 of the Badgeware Tufty Weatherstation In this devlog I: Made it that the A button allows refetching weather data Automatically refresh weather data every 10 minutes Have a text display that shows when the weather was last updated (respecting TIMEZONE setting in secrets.py) Fixed some issues so now most of the time you can plug and replug the multisensor stick. Doesn’t work very reliably though due to issues where the cable is half-connected yet the badge is trying to read from the sensor.
Devlog #8 of the Badgeware Tufty Weatherstation In this devlog I: forked the badgeware web simulator with permission modified the backend slightly to “work on my machine” also modified the actual badge code to use badgeware libraries instead of micropython libraries to let it work on the emulator added a github action to automatically update whats on the simulator repo when a new weatherstation release comes out things i’ve yet to add: automatic time zone setting in the simulator: will add that by overriding secrets.py somehow reskinning the whole site to be a weatherstation homepage
Devlog #9 of the Badgeware Tufty Weatherstation In this devlog I: stripped down the fork of the badgeware web emulator to onl have the badge screen and console log then added content to the homepage talking about the app added a new page with installation instructions for users unfamiliar with the badgeware tufty in that tutorial page i made a tool that generates options.json configurations where you can set temperature unit and pick out coordinates on a map
Devlog #10 of the Badgeware Tufty Weatherstation In this devlog I: added some more effective error handling moved a bunch of functions out of __init__.py into their own files to make the code cleaner add an attribution screen (pictured) to be legally compliant with copyright
Devlog #11 of the Badgeware Tufty Weatherstation (prob the final one) In this devlog I: added this vitals screen which includes battery percentage, flash storage space used and the amount of PSRAM free. It doesn’t show the percentage when its plugged in because for some reason the battery reader always gives 100% when its plugged in published the weatherstation website to https://weatherstation.nouxinf.net/ fix a few bugs
Ships:
I just finished making the Badgeware Tufty Weatherstation. The Badgeware Tufty is a cool digital conference badge made by Pimoroni that comes with a nice screen, buttons, a battery and the RP2350 chip. This makes it fairly capable at 8MiB of RAM, meaning it could be used for just about anything (yes 8MiB is enough). The default firmware has an apps launcher that can launch user-made MicroPython apps, like Weatherstation. Weatherstation is essentially a weather app. The two main features are 1. the multisensor strip: you can plug in a Pimoroni made multisensor stick to get temperature, humidity and air pressure data and 2. internet data from openmeteo. you set the coordinates for your locations in options.json (typing them in manually with the tufty’s 5 buttons would be a pain), it fetches place names for the coordinates (usually suburb, city) through OpenStreetMap Nominatim and displays them or you can set a nickname to override it. it then fetches the weather data from openmeteo and displays temperature, precipitation and wind direction with cool pixel art icons. it updates weather data every 10 minutes, but you can manually refresh by pressing A. The other two screens is the vitals screen, which displays battery percentage, though it doesn’t display the percentage if it’s charging due to a bug with either the firmware or the hardware where it always shows 100% even though its not, the amount of storage space left and the amount of ram free. The next screen after that is attribution info, giving credit to OpenStreetMap and Open-meteo which is legally required. If you’re reading this you probably don’t have a Badgeware Tufty and that’s ok because I forked the official Badgeware Web Emulator at https://try.badgewa.re/ (with permission “I think it’s acceptable to consider it MIT, but either way fork away- and enjoy!” - Gadgetoid, the developer of the simulator on the pimoroni discord) and updated it with some info, installation instructions, and an options.json setup tool. Try it out at https://weatherstation.nouxinf.net/ or press the “Try Project” button! Note that Vitals info data and sensor data are made up (obviously). I hope you enjoy this project!...
|
1793004523.830885
|
1793090923.830885
|
|
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....
|
1792986460.6284878
|
1793072860.6284878
|
|
34296
|
Sundial by @Ann_with_an_e | Stardance
|
Ann_with_an_e
|
1
|
33.0
|
577
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-05T15:59:25Z", "hours": 33.0, "multiplier": 14.61, "payout": 577, "blessing": "neutral", "text": "What I made -Sundial is a personal website/portfolio made to explore creative web designing. My initial inspo was a pokemon game, which is why the landing page is a choose your trainer type thing! The actual page is a room where you can move around and explore object. General Instructions -Not currently mobile friendly -While zoom is accounted for, I highly recommend keeping it at 100% only -Movement is….quirky. It’s being worked on rn, but as of now its a bit odd. It does not influence your ability to interact w/h objects so it shouldn’t impact your experience negatively! -Hover on the yellow buttons to view a description of the pop-up and click on them to actually view the pop-up. -Music, Information and the Quit on the top bar are interactive. -Its recommended to look at the README if you find yourself slightly lost What I’m proud of -I had so much fun making this. From planning this out on scraps of paper, to designing the art, to actually coding this out! It may not be very impressive or complex but I’m so so happy that I could envision something and make something as close as, if not better than my original vision. There are some design related components I wanted to include so much, but I’m slow and I want to make sure I don’t rush something that’s simply not my best! So I’ll add those in the next ship, so keep an eye out! -If there are any issues/bugs/suggestions, feel free to tell me!! I’d love to hear it. So I guess what I want to say is that I made this with tons of care at the tiniest of details, and I really hope it shows! I hope you have as much fun trying this as I had making this", "repo": "https://github.com/syntax-error4O4/Sundial", "demo": "https://syntax-error4o4.github.io/Sundial/"}]...
|
[{"post_id": 41378, "ts": "202 [{"post_id": 41378, "ts": "2026-08-05T15:37:11Z", "hours": 0.2622, "text": "This project is ready to ship! Made some very tiny adjustments while I was editing my repo. Came across a few minor issues that I fixed, like my custom pointer cursor refusing to work, the mute audio once unselected didn’t allow the music to restart, tiny things Cheers! Repo pic !"}, {"post_id": 41326, "ts": "2026-08-05T13:57:19Z", "hours": 4.2881, "text": "What I’m making Okay, you guys know the drill-Sundial is a personal website . The landing page lets you choose a sprite to carry with you to the actual page. You can move around, click on stuff and generally explore! What I added I majorly wanted to improve user experience so all updates are related to that, soo firstly, 🎼 I added sound effects when you click buttons, and background music. I also made a type of screensaver that opens up when you click on the object. Under the pop-up and the overlay some shapes float up and disappear before reaching the top! It was sooo satisfying to see it work Also added a custom cursor! Also realised I needed to actually link my other spritesheets for the boy one so did that too. I added a general info button on the top bar. I added a profile thing, updated my projects page, tweaked my contact me page’s backend a bit I also finally downloaded git! Idk how but the first time I tried using it, the code in my repo went back to the outdated version💀 💀 . Nearly gave me a heart attack. I’m a bit scared to mess my code up, so I’m going to stick to uploading files manually. I really wanted to avoid shipping this until some other stuff on the more art side of things was done with, but I’m really slow. So I’ll ship this as an initial version, and add those things once I’m satisfied. I don’t want to rush and make something that just stresses me out/am unhappy with. Cheers!"}, {"post_id": 37734, "ts": "2026-07-30T17:24:44Z", "hours": 7.1242, "text": "What I’m Making Sooo-I’m making a personal page/portfolio but slightly gamified. Choose a sprite, a name, walk around and click on stuff!! There’ll be background added music soon! Not to mention tons of art/animations because I want this to have ✨ personality✨ What’s new tho? Sooo I drew a few more objects to link pop-ups to, like a globe to show my timezone and a telephone for my contact page☎️ A tree blossoming gif I made for my contact pop-up! Code-wise, I added a typing effect for text in certain parts. The UI/UX went through major improvements, I added a hover effect. For my pop-up I added a tab where you can draw me something and email it to me! I repurposed that for the painterly app in my webos lol . Shoutout to @Alisha for being super cool and letting me use her idea for this! * Tbh I’m running into some issues with receiving the pic, but I’ll troubleshoot it tmr for sure! Currently I’m receiving only the image data….and even if I draw a single line the image data is way too large for this to work. I’m trying to research how I can convert it to a file before it gets to me! But actually fixing it is a job for tmr! I’m going to lock in and try to ship this before this week ends. Think I can do it? No? Yeah, I don’t think I’ll be able to finish it either Cheers! PS: I’m having a bit of trouble attaching the gif, so I attached my spritesheet instead!"}, {"post_id": 35064, "ts": "2026-07-26T07:49:16Z", "hours": 5.6986, "text": "What I’m making Personal website, made by someone who really wants to play a pokemon game that I used to play when I was little but can’t find now. What I did I made a new pop-up for my art!! This was for sure the hardest thing I’ve done because I had to learn abt APIs and stuff and I felt it was terribly confusing. Soo umm why did my art pop-up need APIs? I had this idea, that if sm was visiting the site, and they really liked a certain piece, they could like it! That’s why I had to learn abt APIs. Tbh I’m still confused what I’ll do when I upload it on Github, because I’m pretty sure its a Security Issue™ to just leave the info out in the open. Because this is a porfolio/ personal page I figured I’ll add a section abt education. I wanted to add some ✨ pizzaz ✨ to the pop-up!! So I drew a gif, recorded it to my lapse, and connected it to my hacktime!!!! I’m soooo happy with how it turned out!!!!! I didn’t think it would look nice, but it does! All in all, a preety good update. Cheers!"}, {"post_id": 33620, "ts": "2026-07-23T18:01:56Z", "hours": 6.8931, "text": "#What I’m making A personal website, slightly gamified! The basic premise is that you choose a sprite, a name, move around a room and interact with the objects there. Some of them are going to be purely animated stuff that I’m going to work on pretty soon!!! What I did Spent a bit of time improving the movement. Read: a lot of time. It’s a lot better now! Next I began with the interactive objects. I’m going to finish off the more code?/typing based work first before I begin with the animations for the pop-ups. I made a pop-up to show my projects! You click on the board abv the computer 💻 . I made an overview tab, a devlog tab (I just copied my devlogs on stardance) and a links tab for the readme and deployment and stuff A lot of time was spent on the css, but I’m happy with how it turned out. I might add like a bit of texture to the pop-up, maybe I’ll make a plaid background? Anyway, have a great day!!!! Check out the video if you have time :) ps-idk why my screen recording doesn’t show my sprite walking It makes me sad 😭 😭"}, {"post_id": 30079, "ts": "2026-07-17T11:41:13Z", "hours": 6.1233, "text": "What I’m making A personal website, but make it creative. Last time, I just finished the landing page, where you choose a sprite and a name! The general look I’m going for is kinda like the pixel pokemon games What I added So I began by storing the user’s name and choice of character. Then I remembered that I needed to convert my animated gifs into spritesheets. I’ve never actually made this before, else I would have just done them as I was animating I made the UI, which is a isometric room and a topbar. Then came the fun part! Making the sprite move and not bump into the furniture. This was where I jinxed myself. My room was a flat image, and individually plotting areas where the sprite couldn’t move was….hard to say the least. I created a temporary debug code using where I could adjust the points, view the coordinates in my console and copy it into my code. It worked, but only to an extent. I was three seconds away from exiling myself to yt to learn blender to make a 3d model instead. Idk how, but in some stroke of inspiration, I decided instead of marking places that weren’t walkable, I’d mark the places that actually were. Things got a lot simpler from there. I drew over the walkable areas and inserted it. I kept it transparent so the code could see it but you can’t. IT WORKED, by some grace. It isn’t perfect, but soo much better. Cheers!"}, {"post_id": 28977, "ts": "2026-07-15T16:37:40Z", "hours": 2.5619, "text": "What I’m Making I’ve been thinking about making a personal website for so long, but I simply didn’t like the idea of simply making a scrolling page with a sleek design. I think that websites can be so much more interesting than that! What I want to make is something with character and colour. Sooo here goes- I have a very distinct idea of what I want to make though I’m not sure if I can make it. But I’m going to try anyway lol. The theme is going to be pixel art!!! So today I locked in and made the landing page. I forgot to track the designing 😭😭 so this is only the coding time. The landing page has three avatars you can choose from, an info button and a keyboard for your username. All sprites are drawn and animated by me! Check out the video, I think this is coming along pretty nicely! Next devlog will be better, I’m in a rush rn . I have my physics paper tmr and I haven’t studied yet 💀"}]...
|
Title: Sundial by @Ann_with_an_e | Stardance
Devl Title: Sundial by @Ann_with_an_e | Stardance
Devlogs:
What I’m Making I’ve been thinking about making a personal website for so long, but I simply didn’t like the idea of simply making a scrolling page with a sleek design. I think that websites can be so much more interesting than that! What I want to make is something with character and colour. Sooo here goes- I have a very distinct idea of what I want to make though I’m not sure if I can make it. But I’m going to try anyway lol. The theme is going to be pixel art!!! So today I locked in and made the landing page. I forgot to track the designing 😭😭 so this is only the coding time. The landing page has three avatars you can choose from, an info button and a keyboard for your username. All sprites are drawn and animated by me! Check out the video, I think this is coming along pretty nicely! Next devlog will be better, I’m in a rush rn . I have my physics paper tmr and I haven’t studied yet 💀
What I’m making A personal website, but make it creative. Last time, I just finished the landing page, where you choose a sprite and a name! The general look I’m going for is kinda like the pixel pokemon games What I added So I began by storing the user’s name and choice of character. Then I remembered that I needed to convert my animated gifs into spritesheets. I’ve never actually made this before, else I would have just done them as I was animating I made the UI, which is a isometric room and a topbar. Then came the fun part! Making the sprite move and not bump into the furniture. This was where I jinxed myself. My room was a flat image, and individually plotting areas where the sprite couldn’t move was….hard to say the least. I created a temporary debug code using where I could adjust the points, view the coordinates in my console and copy it into my code. It worked, but only to an extent. I was three seconds away from exiling myself to yt to learn blender to make a 3d model instead. Idk how, but in some stroke of inspiration, I decided instead of marking places that weren’t walkable, I’d mark the places that actually were. Things got a lot simpler from there. I drew over the walkable areas and inserted it. I kept it transparent so the code could see it but you can’t. IT WORKED, by some grace. It isn’t perfect, but soo much better. Cheers!
#What I’m making A personal website, slightly gamified! The basic premise is that you choose a sprite, a name, move around a room and interact with the objects there. Some of them are going to be purely animated stuff that I’m going to work on pretty soon!!! What I did Spent a bit of time improving the movement. Read: a lot of time. It’s a lot better now! Next I began with the interactive objects. I’m going to finish off the more code?/typing based work first before I begin with the animations for the pop-ups. I made a pop-up to show my projects! You click on the board abv the computer 💻 . I made an overview tab, a devlog tab (I just copied my devlogs on stardance) and a links tab for the readme and deployment and stuff A lot of time was spent on the css, but I’m happy with how it turned out. I might add like a bit of texture to the pop-up, maybe I’ll make a plaid background? Anyway, have a great day!!!! Check out the video if you have time :) ps-idk why my screen recording doesn’t show my sprite walking It makes me sad 😭 😭
What I’m making Personal website, made by someone who really wants to play a pokemon game that I used to play when I was little but can’t find now. What I did I made a new pop-up for my art!! This was for sure the hardest thing I’ve done because I had to learn abt APIs and stuff and I felt it was terribly confusing. Soo umm why did my art pop-up need APIs? I had this idea, that if sm was visiting the site, and they really liked a certain piece, they could like it! That’s why I had to learn abt APIs. Tbh I’m still confused what I’ll do when I upload it on Github, because I’m pretty sure its a Security Issue™ to just leave the info out in the open. Because this is a porfolio/ personal page I figured I’ll add a section abt education. I wanted to add some ✨ pizzaz ✨ to the pop-up!! So I drew a gif, recorded it to my lapse, and connected it to my hacktime!!!! I’m soooo happy with how it turned out!!!!! I didn’t think it would look nice, but it does! All in all, a preety good update. Cheers!
What I’m Making Sooo-I’m making a personal page/portfolio but slightly gamified. Choose a sprite, a name, walk around and click on stuff!! There’ll be background added music soon! Not to mention tons of art/animations because I want this to have ✨ personality✨ What’s new tho? Sooo I drew a few more objects to link pop-ups to, like a globe to show my timezone and a telephone for my contact page☎️ A tree blossoming gif I made for my contact pop-up! Code-wise, I added a typing effect for text in certain parts. The UI/UX went through major improvements, I added a hover effect. For my pop-up I added a tab where you can draw me something and email it to me! I repurposed that for the painterly app in my webos lol . Shoutout to @Alisha for being super cool and letting me use her idea for this! * Tbh I’m running into some issues with receiving the pic, but I’ll troubleshoot it tmr for sure! Currently I’m receiving only the image data….and even if I draw a single line the image data is way too large for this to work. I’m trying to research how I can convert it to a file before it gets to me! But actually fixing it is a job for tmr! I’m going to lock in and try to ship this before this week ends. Think I can do it? No? Yeah, I don’t think I’ll be able to finish it either Cheers! PS: I’m having a bit of trouble attaching the gif, so I attached my spritesheet instead!
What I’m making Okay, you guys know the drill-Sundial is a personal website . The landing page lets you choose a sprite to carry with you to the actual page. You can move around, click on stuff and generally explore! What I added I majorly wanted to improve user experience so all updates are related to that, soo firstly, 🎼 I added sound effects when you click buttons, and background music. I also made a type of screensaver that opens up when you click on the object. Under the pop-up and the overlay some shapes float up and disappear before reaching the top! It was sooo satisfying to see it work Also added a custom cursor! Also realised I needed to actually link my other spritesheets for the boy one so did that too. I added a general info button on the top bar. I added a profile thing, updated my projects page, tweaked my contact me page’s backend a bit I also finally downloaded git! Idk how but the first time I tried using it, the code in my repo went back to the outdated version💀 💀 . Nearly gave me a heart attack. I’m a bit scared to mess my code up, so I’m going to stick to uploading files manually. I really wanted to avoid shipping this until some other stuff on the more art side of things was done with, but I’m really slow. So I’ll ship this as an initial version, and add those things once I’m satisfied. I don’t want to rush and make something that just stresses me out/am unhappy with. Cheers!
This project is ready to ship! Made some very tiny adjustments while I was editing my repo. Came across a few minor issues that I fixed, like my custom pointer cursor refusing to work, the mute audio once unselected didn’t allow the music to restart, tiny things Cheers! Repo pic !
Ships:
What I made -Sundial is a personal website/portfolio made to explore creative web designing. My initial inspo was a pokemon game, which is why the landing page is a choose your trainer type thing! The actual page is a room where you can move around and explore object. General Instructions -Not currently mobile friendly -While zoom is accounted for, I highly recommend keeping it at 100% only -Movement is….quirky. It’s being worked on rn, but as of now its a bit odd. It does not influence your ability to interact w/h objects so it shouldn’t impact your experience negatively! -Hover on the yellow buttons to view a description of the pop-up and click on them to actually view the pop-up. -Music, Information and the Quit on the top bar are interactive. -Its recommended to look at the README if you find yourself slightly lost What I’m proud of -I had so much fun making this. From planning this out on scraps of paper, to designing the art, to actually coding this out! It may not be very impressive or complex but I’m so so happy that I could envision something and make something as close as, if not better than my original vision. There are some design related components I wanted to include so much, but I’m slow and I want to make sure I don’t rush something that’s simply not my best! So I’ll add those in the next ship, so keep an eye out! -If there are any issues/bugs/suggestions, feel free to tell me!! I’d love to hear it. So I guess what I want to say is that I made this with tons of care at the tiniest of details, and I really hope it shows! I hope you have as much fun trying this as I had making this...
|
1792997628.229913
|
1793084028.229913
|
|
21970
|
artkive by @puoiyip | Stardance
|
puoiyip
|
1
|
37.0
|
570
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-20T03:44:00Z", "hours": 37.0, "multiplier": 15.39, "payout": 570, "blessing": "neutral", "text": "“artkive” is a personal website of mine that is meant to act as a fun art portfolio that features some of my favorite works that I’ve created over the past few years. Unlike a traditional (or professional) digital art portfolio, I wanted add unique features for each medium to make the pages more interesting. I’ve had this website idea for a year so I’m quite satisfied seeing it come to life! This is the first website that I created independently (after a year-long break from my last web development course), so I struggled to grasp advanced web development concepts. Despite this, I was introduced to various CSS properties that ended up making my website more cohesive. To see my project, simply click on the website link.", "repo": "https://github.com/puoiyip/artkive", "demo": "https://puoiyip.github.io/artkive/"}]...
|
[{"post_id": 31591, "ts": "202 [{"post_id": 31591, "ts": "2026-07-20T03:26:03Z", "hours": 1.2528, "text": "Devlog 20 FINAL devlog for real this time! I mainly worked on updating my README file and fixed bugs related to the mobile devices (I ended up scrapping a couple of features to address this issue)"}, {"post_id": 29691, "ts": "2026-07-16T19:22:22Z", "hours": 2.9294, "text": "Devlog 19 So after testing the website out on my phone, I realized that I needed to format it for mobile devices because it turned out mega wonky (see image below), which means no shipping yet! Accomplishments Removed elements that wouldn’t be effective on mobile (e.g. navbars) Added dropdown menu on the top left of all pages Adjusted text size as necessary Adjusted size of images Added vertical scroll bars to modals and horizontal scroll bar to the Videos page To-Do After making these changes, I tested my website on my phone and saw that many elements were not displaying correctly, so I am working on debugging that"}, {"post_id": 24512, "ts": "2026-07-08T03:22:49Z", "hours": 4.23, "text": "Devlog 18 (woah it’s been a while since i last made a devlog… but i’ve been slowly working on this project bit by bit this past week) Hopefully this is my last devlog before shipping! Accomplishments Added the navbar header to all the pages (and fixed a bunch of bugs associated with this change) Created a scrapbook-esque background to make my website more lively Got rid of the original horizontal navbar from the ibisPaint and Videos pages Added a home button on all the pages Added an auto-scroll effect so that when you click on a page, it’ll scroll to the main content To-Do For some reason, my website won’t deploy on GitHub… so I definitely need to figure that out"}, {"post_id": 20560, "ts": "2026-07-02T05:23:26Z", "hours": 1.0472, "text": "Devlog 17 Accomplishments Styled polaroid images and made them increase in opacity on hover Added camera and film images to make the Videos page nicer and more video-like"}, {"post_id": 19741, "ts": "2026-07-01T04:02:42Z", "hours": 2.0994, "text": "Devlog 16 Accomplishments Created polaroids of some of my favorite art to add to the background of my website (will format later) Combined the header from the home page with the ibisPaint page (though I’m coming across an error when I try to do the same with the Illustrator page) To-Do Fix bugs with Illustrator page Find a way to navigate back to the home page from the other pages (because I’ll eventually remove the navbar) Format the polaroids and have them shake on hover"}, {"post_id": 18969, "ts": "2026-06-30T04:34:07Z", "hours": 0.5281, "text": "Devlog 15 Mainly worked on cleaning up my code a bit Accomplishments Added title tags to each page (don’t know how I forgot them before) Replaced var with const (JavaScript); I finally understand why it’s better to not use var anymore Adjusted the font weight of the home page navbar To-Do Find a font that looks nice when it’s in caps log Replace the current navbar with the home page nav bar (it looks much nicer IMO) Write a real “about me” bio"}, {"post_id": 18110, "ts": "2026-06-29T03:33:43Z", "hours": 1.1136, "text": "Devlog 14 Accomplishments Photoshop and Illustrator pages Received some feedback and added two features to these pages: Tools icons on the left (no, they sadly have no function) Color picker (also has no function, but that might be an add-on later) Home page Added the “openModal()” function to all the images (yes, it was a manual process) Formatted the buttons Added a “close” icon"}, {"post_id": 17936, "ts": "2026-06-28T21:33:38Z", "hours": 2.1456, "text": "Devlog 13 Accomplishments Home page Created a modal container to view the full images on the home page Added functions that open the modal and switch to the previous/next image Other Added a transition on the navbar such that it turns dark(ish) green on hover To-Do Need to figure out if there’s an optimized way to add the openModal() function on all the images without manually adding the onclick=”” function to every < img > tag…. Also need to figure out how to close the modal by clicking outside the image without impacting how the buttons work Change the layout of the buttons"}, {"post_id": 17220, "ts": "2026-06-27T22:39:33Z", "hours": 1.8625, "text": "Devlog 12 Accomplishments Illustrator page Created the layout (which basically mirrors the Photoshop page layout) I had to put all the internal JS and CSS code used for the Photoshop page into external files (and correct them accordingly) so they can be used for Photoshop and Illustrator Videos page Uploaded my videos onto YouTube and embedded them onto the page Enabled autoplay and mute for all the videos To-Do I want to add a scrolling slideshow effect onto the videos page (also maybe make the videos loop) I have an idea to merge the upper half of the home page with the other pages to make it look nicer (which might require me to merge my JS code…)"}, {"post_id": 16715, "ts": "2026-06-27T04:44:33Z", "hours": 1.2508, "text": "Devlog 11 Accomplishments Created a GitHub repo for my project (totally forgot to do that before) and I finally understand how to use GitHub!! Added alt text to all my artworks on the Home page Added a notebook background and tabs for the “previous” and “next” buttons To-Do Find a better quality image of a notebook (at this point I might as well draw one myself) Add alt text to the images on the Photoshop and ibisPaint X pages, where the image source is constantly changing Add more flair to the ibisPaint X page"}, {"post_id": 16612, "ts": "2026-06-27T00:52:59Z", "hours": 2.825, "text": "Devlog 10 Accomplishments ibisPaint X page Finally figured out how to apply the animations to all the pages (I had to increment the degrees by 180 every time the button is clicked) Likewise, I was able to make the containers rotate counterclockwise to go to the previous page To-Do Style the page, maybe add a background image that looks like a sketchbook I want to add a little sticky note button that opens up the artist statements"}, {"post_id": 16102, "ts": "2026-06-26T05:39:09Z", "hours": 2.0844, "text": "Devlog 9 Accomplishments ibisPaint X page Uploaded all of my ibisPaint artworks onto my computer The “next” button is able to traverse all the artworks I was able to add a page flip animation (though it only works for the first page…) I learned a lot about transformations! To-Do In order to execute the home screen plan (from Devlog 8), I have to merge all my internal Javascript code into an external sheet… lots of refactoring to be done Apply the flip animation to all pages"}, {"post_id": 16020, "ts": "2026-06-26T00:27:18Z", "hours": 2.5217, "text": "Devlog 8 Accomplishments Home page Styled the buttons and added more color Created an overview section of all my art Photoshop page Added more color to the background/elements Styled the side navbar Fixed the formatting issue with some of the images Added functionality to the “art” button so that it displays the art/closes the modal To-Do Start working on the layout for the ibisPaint X works Locate, download, and upload all my ibisPaint art to my computer I want each artwork on the “overview” section to link to the full-sized artwork"}, {"post_id": 15497, "ts": "2026-06-25T05:58:04Z", "hours": 2.4789, "text": "Devlog 7 Accomplishments FINALLY changed the text of the navbar lol Added text to the icons on the homepage so users know what they represent Styled the Photoshop layout more Reincorporated the artist statements for the Photoshop page using modals Added functionality so that the modals show when “artist statement” is clicked and they will change alongside the art when “next” or “previous” are clicked To-Do I want to add more character to my pages, perhaps through more color Add a “close” button at the top of the modal Place the side navbar elements at the bottom of the container Some images appear really small, so I need to alter their size"}, {"post_id": 14892, "ts": "2026-06-24T05:40:49Z", "hours": 2.0264, "text": "Devlog 6 Accomplishments I started to design the layout for the Photoshop page (which admittedly does not resemble Photoshop…) I separated the images such that they don’t appear on the page all at once Added functionality to the “next” button to go through the images To-Do Fix the background and adjust the dimensions of the images Add functionality to the “artist statement” to display the text that I had before Make the interface better resemble Photoshop </3"}, {"post_id": 14778, "ts": "2026-06-24T00:27:24Z", "hours": 1.5639, "text": "Devlog 5 Accomplishments Added links to the other HTML files on the icons Added functionality to the buttons!! When a button is pressed, the images/links will shift (I struggled so much getting the images to rotate in the correct order…) To-Do I would like to add animations/transitions to the bottom navbar Style top navbar Finish the layout for the Photoshop page"}, {"post_id": 14206, "ts": "2026-06-23T06:20:42Z", "hours": 0.73, "text": "Devlog 4 Fixed bug with the Filtered Money project images (shown below) Added side bar to the Photoshop page"}, {"post_id": 14028, "ts": "2026-06-23T00:25:01Z", "hours": 1.3925, "text": "Devlog 3 Accomplishments Made the navigation bar horizontal Brainstormed a new idea for the layout of the Photoshop page (it will look like the Photoshop interface) Started the layout for the ibisPaint X page Created the general layout for the home page (shown below) (the images for the icons are placeholders) Began to add functionality to the home page (WIP) To-do Arrange layout for the Photoshop page Figure out how to change the content on click Style navigation bar"}, {"post_id": 13940, "ts": "2026-06-22T21:36:42Z", "hours": 2.0444, "text": "Devlog 2 I added my artist statements (which I saved in a Google Docs a while ago) for each work from Photoshop and Illustrator (I also added my Illustrator works). I imported a couple of fonts from Google Fonts and finally adjusted the sizing of the images and text. I also began brainstorming the logistics for the functionality."}, {"post_id": 11623, "ts": "2026-06-18T22:44:10Z", "hours": 0.9131, "text": "Devlog 1 Just finished planning the outline of my portfolio and uploaded my Photoshop and Illustrator works. I created an HTML file for each page I need and figured out the general color scheme I’m going for. (I will add CSS later)"}]...
|
Title: artkive by @puoiyip | Stardance
Devlogs:
D Title: artkive by @puoiyip | Stardance
Devlogs:
Devlog 1 Just finished planning the outline of my portfolio and uploaded my Photoshop and Illustrator works. I created an HTML file for each page I need and figured out the general color scheme I’m going for. (I will add CSS later)
Devlog 2 I added my artist statements (which I saved in a Google Docs a while ago) for each work from Photoshop and Illustrator (I also added my Illustrator works). I imported a couple of fonts from Google Fonts and finally adjusted the sizing of the images and text. I also began brainstorming the logistics for the functionality.
Devlog 3 Accomplishments Made the navigation bar horizontal Brainstormed a new idea for the layout of the Photoshop page (it will look like the Photoshop interface) Started the layout for the ibisPaint X page Created the general layout for the home page (shown below) (the images for the icons are placeholders) Began to add functionality to the home page (WIP) To-do Arrange layout for the Photoshop page Figure out how to change the content on click Style navigation bar
Devlog 4 Fixed bug with the Filtered Money project images (shown below) Added side bar to the Photoshop page
Devlog 5 Accomplishments Added links to the other HTML files on the icons Added functionality to the buttons!! When a button is pressed, the images/links will shift (I struggled so much getting the images to rotate in the correct order…) To-Do I would like to add animations/transitions to the bottom navbar Style top navbar Finish the layout for the Photoshop page
Devlog 6 Accomplishments I started to design the layout for the Photoshop page (which admittedly does not resemble Photoshop…) I separated the images such that they don’t appear on the page all at once Added functionality to the “next” button to go through the images To-Do Fix the background and adjust the dimensions of the images Add functionality to the “artist statement” to display the text that I had before Make the interface better resemble Photoshop </3
Devlog 7 Accomplishments FINALLY changed the text of the navbar lol Added text to the icons on the homepage so users know what they represent Styled the Photoshop layout more Reincorporated the artist statements for the Photoshop page using modals Added functionality so that the modals show when “artist statement” is clicked and they will change alongside the art when “next” or “previous” are clicked To-Do I want to add more character to my pages, perhaps through more color Add a “close” button at the top of the modal Place the side navbar elements at the bottom of the container Some images appear really small, so I need to alter their size
Devlog 8 Accomplishments Home page Styled the buttons and added more color Created an overview section of all my art Photoshop page Added more color to the background/elements Styled the side navbar Fixed the formatting issue with some of the images Added functionality to the “art” button so that it displays the art/closes the modal To-Do Start working on the layout for the ibisPaint X works Locate, download, and upload all my ibisPaint art to my computer I want each artwork on the “overview” section to link to the full-sized artwork
Devlog 9 Accomplishments ibisPaint X page Uploaded all of my ibisPaint artworks onto my computer The “next” button is able to traverse all the artworks I was able to add a page flip animation (though it only works for the first page…) I learned a lot about transformations! To-Do In order to execute the home screen plan (from Devlog 8), I have to merge all my internal Javascript code into an external sheet… lots of refactoring to be done Apply the flip animation to all pages
Devlog 10 Accomplishments ibisPaint X page Finally figured out how to apply the animations to all the pages (I had to increment the degrees by 180 every time the button is clicked) Likewise, I was able to make the containers rotate counterclockwise to go to the previous page To-Do Style the page, maybe add a background image that looks like a sketchbook I want to add a little sticky note button that opens up the artist statements
Devlog 11 Accomplishments Created a GitHub repo for my project (totally forgot to do that before) and I finally understand how to use GitHub!! Added alt text to all my artworks on the Home page Added a notebook background and tabs for the “previous” and “next” buttons To-Do Find a better quality image of a notebook (at this point I might as well draw one myself) Add alt text to the images on the Photoshop and ibisPaint X pages, where the image source is constantly changing Add more flair to the ibisPaint X page
Devlog 12 Accomplishments Illustrator page Created the layout (which basically mirrors the Photoshop page layout) I had to put all the internal JS and CSS code used for the Photoshop page into external files (and correct them accordingly) so they can be used for Photoshop and Illustrator Videos page Uploaded my videos onto YouTube and embedded them onto the page Enabled autoplay and mute for all the videos To-Do I want to add a scrolling slideshow effect onto the videos page (also maybe make the videos loop) I have an idea to merge the upper half of the home page with the other pages to make it look nicer (which might require me to merge my JS code…)
Devlog 13 Accomplishments Home page Created a modal container to view the full images on the home page Added functions that open the modal and switch to the previous/next image Other Added a transition on the navbar such that it turns dark(ish) green on hover To-Do Need to figure out if there’s an optimized way to add the openModal() function on all the images without manually adding the onclick=”” function to every < img > tag…. Also need to figure out how to close the modal by clicking outside the image without impacting how the buttons work Change the layout of the buttons
Devlog 14 Accomplishments Photoshop and Illustrator pages Received some feedback and added two features to these pages: Tools icons on the left (no, they sadly have no function) Color picker (also has no function, but that might be an add-on later) Home page Added the “openModal()” function to all the images (yes, it was a manual process) Formatted the buttons Added a “close” icon
Devlog 15 Mainly worked on cleaning up my code a bit Accomplishments Added title tags to each page (don’t know how I forgot them before) Replaced var with const (JavaScript); I finally understand why it’s better to not use var anymore Adjusted the font weight of the home page navbar To-Do Find a font that looks nice when it’s in caps log Replace the current navbar with the home page nav bar (it looks much nicer IMO) Write a real “about me” bio
Devlog 16 Accomplishments Created polaroids of some of my favorite art to add to the background of my website (will format later) Combined the header from the home page with the ibisPaint page (though I’m coming across an error when I try to do the same with the Illustrator page) To-Do Fix bugs with Illustrator page Find a way to navigate back to the home page from the other pages (because I’ll eventually remove the navbar) Format the polaroids and have them shake on hover
Devlog 17 Accomplishments Styled polaroid images and made them increase in opacity on hover Added camera and film images to make the Videos page nicer and more video-like
Devlog 18 (woah it’s been a while since i last made a devlog… but i’ve been slowly working on this project bit by bit this past week) Hopefully this is my last devlog before shipping! Accomplishments Added the navbar header to all the pages (and fixed a bunch of bugs associated with this change) Created a scrapbook-esque background to make my website more lively Got rid of the original horizontal navbar from the ibisPaint and Videos pages Added a home button on all the pages Added an auto-scroll effect so that when you click on a page, it’ll scroll to the main content To-Do For some reason, my website won’t deploy on GitHub… so I definitely need to figure that out
Devlog 19 So after testing the website out on my phone, I realized that I needed to format it for mobile devices because it turned out mega wonky (see image below), which means no shipping yet! Accomplishments Removed elements that wouldn’t be effective on mobile (e.g. navbars) Added dropdown menu on the top left of all pages Adjusted text size as necessary Adjusted size of images Added vertical scroll bars to modals and horizontal scroll bar to the Videos page To-Do After making these changes, I tested my website on my phone and saw that many elements were not displaying correctly, so I am working on debugging that
Devlog 20 FINAL devlog for real this time! I mainly worked on updating my README file and fixed bugs related to the mobile devices (I ended up scrapping a couple of features to address this issue)
Ships:
“artkive” is a personal website of mine that is meant to act as a fun art portfolio that features some of my favorite works that I’ve created over the past few years. Unlike a traditional (or professional) digital art portfolio, I wanted add unique features for each medium to make the pages more interesting. I’ve had this website idea for a year so I’m quite satisfied seeing it come to life! This is the first website that I created independently (after a year-long break from my last web development course), so I struggled to grasp advanced web development concepts. Despite this, I was introduced to various CSS properties that ended up making my website more cohesive. To see my project, simply click on the website link....
|
1792972315.6211689
|
1793058715.6211689
|