|
16571
|
mocha by @Glitchy | Stardance
|
Glitchy
|
1
|
101.0
|
1806
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T18:57:02Z", "hours": 101.0, "multiplier": 17.94, "payout": 1806, "blessing": "neutral", "text": "I made a package manager for Windows, which is somewhat backwards compatible with scoop packages. To be honest there’s still a lot of work that I want to do, but I have exams and college application coming up soon so I can’t. That’s not to say I’m not happy with the state of the ship. At the very least it has all the core features that a package manager should have, but there are still a lot of bugs which is why this is only v0.0.1. The biggest challenge by far was trying to figure out how Scoop does things internally. A lot of stuff just doesn’t have documentation, so you have to dig through the really messy PowerShell source code.", "repo": "https://github.com/Protract-123/mocha", "demo": "https://github.com/Protract-123/mocha/releases/latest"}]...
|
[{"post_id": 67579, "ts": "202 [{"post_id": 67579, "ts": "2026-09-13T18:33:17Z", "hours": 1.7761, "text": "So I wrote a README, added a license (MIT of course) and setup CI/CD so that releases are automatically built and deployed. Honestly I forgot how hard it is to write a good README. You need to get a lot of information through without it looking like a wall of text."}, {"post_id": 67267, "ts": "2026-09-13T10:36:48Z", "hours": 5.8047, "text": "I forgot to make a devlog in between so this will be like 2 bigger devlogs. I parallelized bucket updates, which speeds it up quite a bit. This also allowed me to try out parallelism even more, which I plan to apply throughout the CLI later on. I also added configuration options for the runners which mocha shim will use to run certain file types. For example, you can set the python-runner to select the python version that’ll be used to run python scripts that are shimmed. Downloads now have a progress bar, so you don’t need to wonder whether something is happening or not during a long download. Finally env_set is fully supported since I added the relevant variable parsing. This was pretty much just me cleaning out the TODO list before I ship. I also did a lot of smaller bug fixes and refactors as seen below. fix(commands): prevent app installation if already installed (cb27d07) fix(commands): fix config opening with “start” (74f3679) fix(commands): correctly handle non-apps when upgrading (f7419f6) fix: make LogOutput go to Stdout not Stderr (bc10357) fix: handle empty versions correctly (2287da9) fix(pkg): remove correct temp dir (33189b6) fix(shim): warn for unknown shim extension (622c2b4) fix: skip downloads with no hash by default (69d4e35) fix: use correct timeout for downloads (44e527b) fix: drop unnecessary return value from GetExecutableEntries (9fd845c) fix(config): remove unused option (1339971) fix(commands): don’t error for valid results (87c4d6c) refactor(config): rename variables/functions (f253d9d) fix: use unique temp directories (a159e23) refactor: use fmt.Fprintln directly (d2d54bf)"}, {"post_id": 65401, "ts": "2026-09-10T14:55:22Z", "hours": 2.5386, "text": "Lots of small bug fixes and changes, I’ll just list them out: feat(cmd): allow removal of multiple shims in one execution (f2fae3f) fix(manifest): correctly ignore invalid shortcut entries (6a08478) fix(fileops): use correct registry type (5d5d796) fix(config): seed config with defaults (9dfaaff) fix(cmd): use correct release sources (a2a9ba1) fix(cmd): use bucket from install info (5a9109b) I also added support for more file types being shimmed, which helps a lot with compatibility. The file types are .py , .bat , .cmd , .jar and .ps1 ."}, {"post_id": 52474, "ts": "2026-08-22T16:37:15Z", "hours": 4.6758, "text": "Lot of time going into this devlog, but it makes sense since I did do a lot. I did this sweeping refactor of the entire commands module which moved around a lot of code. Essentially each command now gets it’s own directory under the commands module that represents it’s children/parents. For example commands/shim/remove/cmd.go contains code for the mocha shim remove command. Each cmd.go contains a Command struct that has the relevant fields and functions attached to it. This structure just makes things more organized and also means adding test files will be a bit easier since functionality is now isolated. I also sorted out the shim binary. So essentially https://github.com/ScoopInstaller/Shim offers different version of the shim binary which can be installed. Previously I hard coded the code to install cpp v0.1.0 but now users can run mocha shim binary releases to see the options and mocha shim binary setup to install their chosen binary. This also means we actually get the latest releases from GitHub."}, {"post_id": 51141, "ts": "2026-08-20T17:11:51Z", "hours": 3.6722, "text": "Finally got a bit of time to do a bit of development. First thing I did was remove a field from install.json to match scoop . This means that mocha should be a drop in replacement for existing scoop installs. Then I added partial support for env_set and env_add_path . The main thing I need to do to complete the feature is parse variables and replace them with the appropriate paths. These 2 fields are some of the last manifest fields I need to support besides pre/post (un)install hooks."}, {"post_id": 34596, "ts": "2026-07-25T13:39:02Z", "hours": 2.5778, "text": "My summer break has ended so development is going to be a lot slower from now. I added mocha outdated so you can list outdated apps before upgrading them to a newer version. Besides that I tweaked a lot of stuff related to CLI output. For example I changed search to output one table, and simply outputting exact matches at the top of that table. I also changed a lot of messages which were using LogOutput to LogInfo so they use the correct color and output to stderr and not stdout ."}, {"post_id": 31801, "ts": "2026-07-20T14:04:04Z", "hours": 1.5481, "text": "Not sure why I didn’t do this earlier, but I’ve added success messages to commands where it makes sense. Also added a success color to the config so you can change what the success color is. I do still need to improve CLI output quite a bit, but it’s slowly getting there."}, {"post_id": 30693, "ts": "2026-07-18T14:02:54Z", "hours": 2.1922, "text": "I’m writing this one right before F1 Qualifying at Spa! Continuing with the trend of some of my recent work, I improved what table outputs look like to be a little bit more readable. We now use proper separators in the form of Unicode Box Drawing Characters . I also made column alignment configurable, which improves legibility for some commands like mocha bucket list and mocha cache show . I’ve attached an image of the scoop and mocha versions of bucket list so you can compare for yourself."}, {"post_id": 30286, "ts": "2026-07-17T18:51:34Z", "hours": 3.4797, "text": "I love refactoring!!!! I’ll probably end up spending another 20 hours just on refactoring because it’s so fun!!!! This time around I wanted to refactor the code so that our commands orchestrate stuff instead of the helper functions. For example, pkg.Install would first download a package, then install it, and then link it through shims and shortcuts all by itself. This causes issues because it means error messages become slightly worse, and it creates a class of bugs due to edge cases where we don’t necessarily want this order of orchestration. Hence I did a lot of refactoring in the pkg module. I also ended up adding a way to skip verification of downloads when downloading, installing or updating a package through --skip-verify . It’s a useful option in situations where there is a malformed manifest or simply no hash to begin with."}, {"post_id": 30054, "ts": "2026-07-17T10:28:53Z", "hours": 4.6269, "text": "mocha now supports a user defined theme for output colors. In the process I ended up doing a lot of stuff related to the config. First thing I did was swap to fatih/color for colored output, since it handles stuff like colors in command prompt and removing color when output is piped. Then I refactored the config module. Earlier I would pass around a MochaConfiguration object through every function. Now I use a config singleton that’s accessible from any function. Why? Because it means I don’t need to pass the object every time I want to log information. Also means I don’t need to pass mochaDir through almost every function in the codebase. Getting user defined themes was a bit complicated because I needed a good way to handle a default theme so output doesn’t look bad if parsing fails. I handled this by only using the configured theme if every color resolves properly. Otherwise output falls back to the already loaded default theme. Due to this you still get colored output even if there are errors or warning before the configuration and theme is loaded."}, {"post_id": 29066, "ts": "2026-07-15T18:30:47Z", "hours": 4.7214, "text": "So I’ve been doing a bit of refactoring, a bit of bug fixing and a bit of optimization. Essentially just polishing mocha before I work on the next feature. Here’s some of the stuff I did: created tests for ParseRefString to validate behavior cache manifest json between info calls since I/O is really slow bumped dependency versions refactored manifest/info.go Besides that I fixed the uninstall flow since it was really bugged after the latest changes. Essentially mocha would uninstall apps with incorrect info. It would also try to remove shims/shortcuts for apps which don’t have any active shims/shortcuts. I then added a bit of logging since the uninstall command didn’t give any user output for whatever reason (i forgot to earlier)."}, {"post_id": 27086, "ts": "2026-07-12T10:29:45Z", "hours": 6.4975, "text": "This is going to be the equivalent of 2 devlogs since I thought I made one earlier for persists but I didn’t. New feature! We now handle persist items in order to store data between versions. These are files which are persisted between versions of an app. Lets take git as an example to explain why persist exists. Say you want to make sure your git config isn’t deleted every time you update. The issue with this is that the config file is saved in the version specfic directory. To resolve this we can keep the config in $MOCHA_DIR/persist and then symlink the config to where it needs to be, which is essentially what persist tells us to do. Since we handled persist items last time we can now implement mocha upgrade to update apps. The way scoop handles updates is by first removing anything that references the app, like shortcuts or shims . Then we just follow the install process from scratch. This leaves the old version available in case a user wants to revert versions due to a bug, while also updating to the latest available version. This can be seen in the video below, which shows me updating llama.cpp-hip-radeon ."}, {"post_id": 23572, "ts": "2026-07-06T16:39:13Z", "hours": 3.53, "text": "We now create shortcuts! This means any GUI apps should show up properly in the start menu, just like they do when you install with scoop . All I really had to do was a bit of orchestration since I decided to vendor in an implementation from https://github.com/jxeng/shortcut Besides that I expanded the number of apps that are supported by implementing a bit of code that handle architecture specific bin fields, along with bin fields which store 2D arrays. I also cleared up some of the TODO items. I swapped the junction implementation to an implementation from https://github.com/nyaosorg/go-windows-junction since we were previously shelling out to CLI. That and I added a bit more zip bomb protection For the purposes of the video below I changed the location which shortcuts get put to my desktop. It’ll probably be configurable, and match scoop by putting shortcuts in the startup menu by default"}, {"post_id": 22839, "ts": "2026-07-05T13:36:18Z", "hours": 3.3089, "text": "As I mentioned in the previous devlog I added good help information to every bit of the CLI. It’s surprisingly difficult to write good help messages which explains everything to users in a few words I also changed the behaviour of the mocha cache clear command to not clear all cache by default. That’s now gated behind the --all flag in order to match scoop a bit more"}, {"post_id": 21420, "ts": "2026-07-03T11:02:24Z", "hours": 1.0722, "text": "Typically I don’t want to make devlogs for small stuff like this, but this is something I found really cool. So I was working on help messages for all the commands when I realized that mocha bucket list felt a bit slower than pretty much every other command. This is because we need to shell out to git 2 times per bucket, and I had 4 buckets added. While 8 git commands might not sound like a lot, it was enough to make mocha bucket list feel slow. So what I did is I parallelized the metadata fetching through an errgroup . Instead of fetching the metadata for each bucket in order, we fetch the metadata for all 4 buckets simultaneously. This led to a big performance uplift. About 3 times faster than the old version of mocha , and just over 12 times faster than scoop for this operation. See the video below."}, {"post_id": 21386, "ts": "2026-07-03T09:17:07Z", "hours": 2.2464, "text": "I finished up mocha uninstall and mocha list , which means you can actually manage installed apps instead of manually deleting them. There’s not much that goes into mocha uninstall . You just need to remove the relevant shims and app directories since the apps that mocha supports are all portable. mocha list is similarly simple. It’s just loops over the directories in $MOCHA_DIR/apps and looks for apps along with the versions installed for each app."}, {"post_id": 19910, "ts": "2026-07-01T10:53:02Z", "hours": 5.4625, "text": "So I added support for more apps by implementing more extractors. This means in theory any apps which don’t need a pre-install or post-install should work. To be more specific, I handle a few more properties on manifests. Those being extract_dir and innosetup , which inform how an app needs to be installed. I also implement 7zip and innounp as extractors to support more file formats which applications are distributed in. Of course there’s still a lot of work before I consider this ready for public use. I need to create commands for some basic operations like uninstalling, updating and listing apps. I also need to handle shortcuts otherwise GUI apps can’t be accessed from the start menu. Besides that I need to improve the user experience. As you can see in the video below mocha just sort of dumps everything to the console even if it’s not relevant. Help menus are also critical to get working properly."}, {"post_id": 18238, "ts": "2026-06-29T09:51:16Z", "hours": 3.7839, "text": "Finished up the code cleanup in commands , fileops and manifests . I did catch a few edge cases and some incorrect behavior in the process, which is why I always spend so much time reviewing code. I did use AI to assist with code review because I think it’s an area where AI shines. AI is really good at finding small errors or inconsistencies in the codebase which I probably wouldn’t notice. For example, it identified that the ManifestReferences argument was not a required argument for the download command, which meant no help message was displayed on incorrect usage like the other commands. One big thing I will work on eventually is console output. Right now errors are well formatted but a lot of the time commands just run stuff without providing a lot of insight into what actions they are taking which isn’t great. Even the help menu is pretty useless right now (see the image below). Extra context: A manifest reference is a pointer to an app (e.g. main/ [email protected] )"}, {"post_id": 17027, "ts": "2026-06-27T17:10:53Z", "hours": 5.3025, "text": "Before working on more features and expanding the amount of apps mocha actually supports I wanted to go through the codebase and do a lot of cleanup since the codebase is quite messy. There are silly mistakes in some files and bad implementations in others. Hence the time I spent during this period was focused on moving code to where it should be and cleaning up some edge cases, specifically related to the bucket , config and shim modules. A good example of this is moving the code to get the active config to the config module instead of leaving it in main.go . Next up will be refactoring the commands , fileops , and manifest modules. I don’t have much to show so I figured I would present a feature I added but didn’t show earlier: the ability to skip cache hits with the --force flag when installing or downloading an app. Some context I forgot to add initially: I renamed the app module to manifest since I felt it was more accurate to what it actually handles scope wise."}, {"post_id": 15814, "ts": "2026-06-25T18:17:50Z", "hours": 2.5558, "text": "Huge milestone!!! I’ve gotten mocha install working for very basic apps! This means the entire process of downloading a file, then extracting it, then creating a junction and finally creating a shim now works for basic pieces of software! So in terms of what I actually did this devlog, I added cache hits to the download command since it’s relevant to the install command. I then implemented the aforementioned .zip extraction and junction creation. Then all that was left was a bit of orchestration, getting everything to work together properly. See a working install of innounp using mocha install below!"}, {"post_id": 15668, "ts": "2026-06-25T14:03:10Z", "hours": 0.7572, "text": "mocha update is another command which does very little but is very important. All it does is update the known_buckets file, and run git pull on all added buckets to update them. It can also update just the buckets you specify if you pass in an argument. I do need to improve the output of the command since it outputs raw git right now, but at least it’s functional. See the demo below."}, {"post_id": 14392, "ts": "2026-06-23T14:41:51Z", "hours": 6.9436, "text": "Spent a bit longer between devlogs this time, but it was worth it. So I realized the error messages were really bad. I was pretty much just passing errors up the call stack without adding any context, which isn’t great since it means our error messages will be useless to people reading them I therefore went through every single file of the codebase and wrote good error messages which add a bit of context every time we pass it up the call stack. I also did a bit of refactoring where I thought it would be worth it. For example in the shim module I now set the PE subsystem of the shim binary while it’s in memory instead of writing to disk twice. A few good examples of what the new error messages look like can be seen in the video below."}, {"post_id": 13054, "ts": "2026-06-21T10:47:05Z", "hours": 3.4069, "text": "Shims are simple in concept, complicated in reality. So essentially a shim in mocha is just an executable which calls another executable. It’s similar to a shortcut in that sense, except it shows up in $PATH Thankfully the scoop project already has a repository with 4 different implementations for the shim binary, so I can just have mocha shim download one of those binaries. The complicated part was the PE Subsystem. The PE subsystem is basically a bit of info in each binary which tells Windows whether it’s a console application, or a GUI application. We need to set the PE subsystem of the shim exe to the PE subsystem of the binary we are calling for Windows to execute the binary properly. Hence I need to read and write raw binary data. All of this is just the implementation for exe shims. Scoop itself contains implementations for .bat/.cmd , .ps1 , .jar , .py and linux binaries , all of which have wildly different implementations compared to .exe shims. The video below shows the working set of mocha shim commands (those being add , remove and list )."}, {"post_id": 12032, "ts": "2026-06-19T16:57:37Z", "hours": 1.8778, "text": "mocha cache is a simple command. It shows you what files are currently in $MOCHA_DIR/cache directory and it clears them out. One thing I noticed was that scoop cache show actually displays raw bytes instead of human readable file sizes for each cache entry, which is a bit odd since the total they display is human readable. Therefore I made my implementation mocha cache list display human readable sizes since that’s a more reasonable default."}, {"post_id": 11234, "ts": "2026-06-18T11:50:44Z", "hours": 2.2589, "text": "Fuzzy search is really really good. While implementing mocha search I noticed the results returned by scoop search were in alphabetical order, which doesn’t make a lot of sense. If I do scoop search git the first result should probably be git As a result my implementation of search uses github.com/sahilm/fuzzy which is a small library which provides a fuzzy search implementation. Scoop also checks for binary name matches, e.g. package biodiff can provide a binary called git-biodiff and show up in search results. I decided to remove this for now, since I personally find it a bit unnecessary. scoop search also lists all search results, which is okay when results are sorted alphabetically but doesn’t make sense when searches are relevance based. Therefore, by default mocha search will list exact matches plus the 20 most relevant search results. This can be overridden by the --count argument, where setting it to 0 displays all results. A demonstration of mocha search vs scoop search can be seen in the video below."}, {"post_id": 10748, "ts": "2026-06-17T17:14:41Z", "hours": 2.1597, "text": "I finished up mocha download , which surprisingly does a bit more than simply downloading files. The first thing it does is well… download the file. This is a bit more complicated than it seems though, since we need to identify the right file to download based on cpu architecture. Hence the very cursed JSON parsing I had to create. After downloading a file, we also do a hash check. We support the 4 types of file hashes which scoop support, those being sha256 , sha512 , md5 and sha1 . Currently files get downloaded to the $MOCHA_DIR/cache directory like in scoop, however we don’t actually check if there’s anything cached which can lead to repeated downloads. That’s something I’ll need to fix later on"}, {"post_id": 10131, "ts": "2026-06-16T18:54:22Z", "hours": 1.4081, "text": "I was working on the mocha download command so I can sort out fetching files, and during it I realized my current app format makes things a bit weird. mocha cat previously took in a flag for bucket through -b and a name. Scoop on the other hand uses an application reference in the format bucket/name@version . Scoop’s format is really important for downloads and installs, so it didn’t make sense to not standardize it between mocha download and mocha cat . Hence this shorter devlog! See the video below for the new usage (version numbers are ignored for mocha cat )."}, {"post_id": 10004, "ts": "2026-06-16T15:21:57Z", "hours": 2.9753, "text": "I did a bit of refactoring to split the core functionality from the command files. This means that the code for downloading and deleting buckets is separated from the code for the various commands. I’m doing this primarily for better code organization, and also to prevent import cycles. I also finished up the config system I mentioned last time. It’ll be one of the bigger improvements over scoop, which has a basic set of configuration options. TOML was the obvious choice for the config format since it is really easy to read and write. I made sure that you can put it in any of the standard locations, such as %APPDATA% and .config or in $MOCHA_DIR . Running mocha config will open the configuration in your preferred app, and also generate the default config if a configuration hasn’t been detected in any of the valid locations. Currently the configuration can be used to make mocha cat run an external program for printing manifests to stdout . See the video below for an example using bat"}, {"post_id": 8826, "ts": "2026-06-14T17:52:54Z", "hours": 2.6147, "text": "So this is a spot where I think the improvements over scoop start becoming really apparent. The scoop cat command simply prints an app’s manifest to console. However due to the long startup time of PowerShell scripts (scoop is written in PowerShell) basic stuff like scoop cat takes a second. mocha cat on the other hand is nearly instantaneous since it’s a compiled binary with almost 0 startup time. You can see how this plays out in real usage in the video below. I also half baked a config system, but it’s not finished so I’ll talk about that in the next devlog."}, {"post_id": 8586, "ts": "2026-06-14T08:48:35Z", "hours": 2.85, "text": "I finished off the remaining mocha bucket subcommands, those being add , rm and list . These commands manage “buckets” which are pretty much just package sources. mocha bucket add uses git to clone the relevant bucket into the [MOCHA_DIR]/buckets directory. By default MOCHA_DIR is [USER]/mocha mocha bucket list simply loops over the [MOCHA_DIR]/buckets directory and gets relevant info for each bucket. mocha bucket rm removes a bucket by just deleting the folder containing the bucket. For example, removing the main bucket deletes [MOCHA_DIR]/buckets/main"}, {"post_id": 8208, "ts": "2026-06-13T17:32:25Z", "hours": 2.0261, "text": "I started off with something a bit simple: mocha bucket known The known bucket list in scoop is a list of buckets which are known by the package manager in advance. These buckets don’t require the full URL to be used when using scoop bucket sub-commands. For example instead of running scoop bucket add https://github.com/ScoopInstaller/Main you can instead run scoop bucket add main As seen in the video below, mocha bucket known doesn’t do much. First it downloads buckets.json if it doesn’t exist. Then it parses the json and outputs it to console."}]...
|
Title: mocha by @Glitchy | Stardance
Devlogs:
I s Title: mocha by @Glitchy | Stardance
Devlogs:
I started off with something a bit simple: mocha bucket known The known bucket list in scoop is a list of buckets which are known by the package manager in advance. These buckets don’t require the full URL to be used when using scoop bucket sub-commands. For example instead of running scoop bucket add https://github.com/ScoopInstaller/Main you can instead run scoop bucket add main As seen in the video below, mocha bucket known doesn’t do much. First it downloads buckets.json if it doesn’t exist. Then it parses the json and outputs it to console.
I finished off the remaining mocha bucket subcommands, those being add , rm and list . These commands manage “buckets” which are pretty much just package sources. mocha bucket add uses git to clone the relevant bucket into the [MOCHA_DIR]/buckets directory. By default MOCHA_DIR is [USER]/mocha mocha bucket list simply loops over the [MOCHA_DIR]/buckets directory and gets relevant info for each bucket. mocha bucket rm removes a bucket by just deleting the folder containing the bucket. For example, removing the main bucket deletes [MOCHA_DIR]/buckets/main
So this is a spot where I think the improvements over scoop start becoming really apparent. The scoop cat command simply prints an app’s manifest to console. However due to the long startup time of PowerShell scripts (scoop is written in PowerShell) basic stuff like scoop cat takes a second. mocha cat on the other hand is nearly instantaneous since it’s a compiled binary with almost 0 startup time. You can see how this plays out in real usage in the video below. I also half baked a config system, but it’s not finished so I’ll talk about that in the next devlog.
I did a bit of refactoring to split the core functionality from the command files. This means that the code for downloading and deleting buckets is separated from the code for the various commands. I’m doing this primarily for better code organization, and also to prevent import cycles. I also finished up the config system I mentioned last time. It’ll be one of the bigger improvements over scoop, which has a basic set of configuration options. TOML was the obvious choice for the config format since it is really easy to read and write. I made sure that you can put it in any of the standard locations, such as %APPDATA% and .config or in $MOCHA_DIR . Running mocha config will open the configuration in your preferred app, and also generate the default config if a configuration hasn’t been detected in any of the valid locations. Currently the configuration can be used to make mocha cat run an external program for printing manifests to stdout . See the video below for an example using bat
I was working on the mocha download command so I can sort out fetching files, and during it I realized my current app format makes things a bit weird. mocha cat previously took in a flag for bucket through -b and a name. Scoop on the other hand uses an application reference in the format bucket/name@version . Scoop’s format is really important for downloads and installs, so it didn’t make sense to not standardize it between mocha download and mocha cat . Hence this shorter devlog! See the video below for the new usage (version numbers are ignored for mocha cat ).
I finished up mocha download , which surprisingly does a bit more than simply downloading files. The first thing it does is well… download the file. This is a bit more complicated than it seems though, since we need to identify the right file to download based on cpu architecture. Hence the very cursed JSON parsing I had to create. After downloading a file, we also do a hash check. We support the 4 types of file hashes which scoop support, those being sha256 , sha512 , md5 and sha1 . Currently files get downloaded to the $MOCHA_DIR/cache directory like in scoop, however we don’t actually check if there’s anything cached which can lead to repeated downloads. That’s something I’ll need to fix later on
Fuzzy search is really really good. While implementing mocha search I noticed the results returned by scoop search were in alphabetical order, which doesn’t make a lot of sense. If I do scoop search git the first result should probably be git As a result my implementation of search uses github.com/sahilm/fuzzy which is a small library which provides a fuzzy search implementation. Scoop also checks for binary name matches, e.g. package biodiff can provide a binary called git-biodiff and show up in search results. I decided to remove this for now, since I personally find it a bit unnecessary. scoop search also lists all search results, which is okay when results are sorted alphabetically but doesn’t make sense when searches are relevance based. Therefore, by default mocha search will list exact matches plus the 20 most relevant search results. This can be overridden by the --count argument, where setting it to 0 displays all results. A demonstration of mocha search vs scoop search can be seen in the video below.
mocha cache is a simple command. It shows you what files are currently in $MOCHA_DIR/cache directory and it clears them out. One thing I noticed was that scoop cache show actually displays raw bytes instead of human readable file sizes for each cache entry, which is a bit odd since the total they display is human readable. Therefore I made my implementation mocha cache list display human readable sizes since that’s a more reasonable default.
Shims are simple in concept, complicated in reality. So essentially a shim in mocha is just an executable which calls another executable. It’s similar to a shortcut in that sense, except it shows up in $PATH Thankfully the scoop project already has a repository with 4 different implementations for the shim binary, so I can just have mocha shim download one of those binaries. The complicated part was the PE Subsystem. The PE subsystem is basically a bit of info in each binary which tells Windows whether it’s a console application, or a GUI application. We need to set the PE subsystem of the shim exe to the PE subsystem of the binary we are calling for Windows to execute the binary properly. Hence I need to read and write raw binary data. All of this is just the implementation for exe shims. Scoop itself contains implementations for .bat/.cmd , .ps1 , .jar , .py and linux binaries , all of which have wildly different implementations compared to .exe shims. The video below shows the working set of mocha shim commands (those being add , remove and list ).
Spent a bit longer between devlogs this time, but it was worth it. So I realized the error messages were really bad. I was pretty much just passing errors up the call stack without adding any context, which isn’t great since it means our error messages will be useless to people reading them I therefore went through every single file of the codebase and wrote good error messages which add a bit of context every time we pass it up the call stack. I also did a bit of refactoring where I thought it would be worth it. For example in the shim module I now set the PE subsystem of the shim binary while it’s in memory instead of writing to disk twice. A few good examples of what the new error messages look like can be seen in the video below.
mocha update is another command which does very little but is very important. All it does is update the known_buckets file, and run git pull on all added buckets to update them. It can also update just the buckets you specify if you pass in an argument. I do need to improve the output of the command since it outputs raw git right now, but at least it’s functional. See the demo below.
Huge milestone!!! I’ve gotten mocha install working for very basic apps! This means the entire process of downloading a file, then extracting it, then creating a junction and finally creating a shim now works for basic pieces of software! So in terms of what I actually did this devlog, I added cache hits to the download command since it’s relevant to the install command. I then implemented the aforementioned .zip extraction and junction creation. Then all that was left was a bit of orchestration, getting everything to work together properly. See a working install of innounp using mocha install below!
Before working on more features and expanding the amount of apps mocha actually supports I wanted to go through the codebase and do a lot of cleanup since the codebase is quite messy. There are silly mistakes in some files and bad implementations in others. Hence the time I spent during this period was focused on moving code to where it should be and cleaning up some edge cases, specifically related to the bucket , config and shim modules. A good example of this is moving the code to get the active config to the config module instead of leaving it in main.go . Next up will be refactoring the commands , fileops , and manifest modules. I don’t have much to show so I figured I would present a feature I added but didn’t show earlier: the ability to skip cache hits with the --force flag when installing or downloading an app. Some context I forgot to add initially: I renamed the app module to manifest since I felt it was more accurate to what it actually handles scope wise.
Finished up the code cleanup in commands , fileops and manifests . I did catch a few edge cases and some incorrect behavior in the process, which is why I always spend so much time reviewing code. I did use AI to assist with code review because I think it’s an area where AI shines. AI is really good at finding small errors or inconsistencies in the codebase which I probably wouldn’t notice. For example, it identified that the ManifestReferences argument was not a required argument for the download command, which meant no help message was displayed on incorrect usage like the other commands. One big thing I will work on eventually is console output. Right now errors are well formatted but a lot of the time commands just run stuff without providing a lot of insight into what actions they are taking which isn’t great. Even the help menu is pretty useless right now (see the image below). Extra context: A manifest reference is a pointer to an app (e.g. main/ [email protected] )
So I added support for more apps by implementing more extractors. This means in theory any apps which don’t need a pre-install or post-install should work. To be more specific, I handle a few more properties on manifests. Those being extract_dir and innosetup , which inform how an app needs to be installed. I also implement 7zip and innounp as extractors to support more file formats which applications are distributed in. Of course there’s still a lot of work before I consider this ready for public use. I need to create commands for some basic operations like uninstalling, updating and listing apps. I also need to handle shortcuts otherwise GUI apps can’t be accessed from the start menu. Besides that I need to improve the user experience. As you can see in the video below mocha just sort of dumps everything to the console even if it’s not relevant. Help menus are also critical to get working properly.
I finished up mocha uninstall and mocha list , which means you can actually manage installed apps instead of manually deleting them. There’s not much that goes into mocha uninstall . You just need to remove the relevant shims and app directories since the apps that mocha supports are all portable. mocha list is similarly simple. It’s just loops over the directories in $MOCHA_DIR/apps and looks for apps along with the versions installed for each app.
Typically I don’t want to make devlogs for small stuff like this, but this is something I found really cool. So I was working on help messages for all the commands when I realized that mocha bucket list felt a bit slower than pretty much every other command. This is because we need to shell out to git 2 times per bucket, and I had 4 buckets added. While 8 git commands might not sound like a lot, it was enough to make mocha bucket list feel slow. So what I did is I parallelized the metadata fetching through an errgroup . Instead of fetching the metadata for each bucket in order, we fetch the metadata for all 4 buckets simultaneously. This led to a big performance uplift. About 3 times faster than the old version of mocha , and just over 12 times faster than scoop for this operation. See the video below.
As I mentioned in the previous devlog I added good help information to every bit of the CLI. It’s surprisingly difficult to write good help messages which explains everything to users in a few words I also changed the behaviour of the mocha cache clear command to not clear all cache by default. That’s now gated behind the --all flag in order to match scoop a bit more
We now create shortcuts! This means any GUI apps should show up properly in the start menu, just like they do when you install with scoop . All I really had to do was a bit of orchestration since I decided to vendor in an implementation from https://github.com/jxeng/shortcut Besides that I expanded the number of apps that are supported by implementing a bit of code that handle architecture specific bin fields, along with bin fields which store 2D arrays. I also cleared up some of the TODO items. I swapped the junction implementation to an implementation from https://github.com/nyaosorg/go-windows-junction since we were previously shelling out to CLI. That and I added a bit more zip bomb protection For the purposes of the video below I changed the location which shortcuts get put to my desktop. It’ll probably be configurable, and match scoop by putting shortcuts in the startup menu by default
This is going to be the equivalent of 2 devlogs since I thought I made one earlier for persists but I didn’t. New feature! We now handle persist items in order to store data between versions. These are files which are persisted between versions of an app. Lets take git as an example to explain why persist exists. Say you want to make sure your git config isn’t deleted every time you update. The issue with this is that the config file is saved in the version specfic directory. To resolve this we can keep the config in $MOCHA_DIR/persist and then symlink the config to where it needs to be, which is essentially what persist tells us to do. Since we handled persist items last time we can now implement mocha upgrade to update apps. The way scoop handles updates is by first removing anything that references the app, like shortcuts or shims . Then we just follow the install process from scratch. This leaves the old version available in case a user wants to revert versions due to a bug, while also updating to the latest available version. This can be seen in the video below, which shows me updating llama.cpp-hip-radeon .
So I’ve been doing a bit of refactoring, a bit of bug fixing and a bit of optimization. Essentially just polishing mocha before I work on the next feature. Here’s some of the stuff I did: created tests for ParseRefString to validate behavior cache manifest json between info calls since I/O is really slow bumped dependency versions refactored manifest/info.go Besides that I fixed the uninstall flow since it was really bugged after the latest changes. Essentially mocha would uninstall apps with incorrect info. It would also try to remove shims/shortcuts for apps which don’t have any active shims/shortcuts. I then added a bit of logging since the uninstall command didn’t give any user output for whatever reason (i forgot to earlier).
mocha now supports a user defined theme for output colors. In the process I ended up doing a lot of stuff related to the config. First thing I did was swap to fatih/color for colored output, since it handles stuff like colors in command prompt and removing color when output is piped. Then I refactored the config module. Earlier I would pass around a MochaConfiguration object through every function. Now I use a config singleton that’s accessible from any function. Why? Because it means I don’t need to pass the object every time I want to log information. Also means I don’t need to pass mochaDir through almost every function in the codebase. Getting user defined themes was a bit complicated because I needed a good way to handle a default theme so output doesn’t look bad if parsing fails. I handled this by only using the configured theme if every color resolves properly. Otherwise output falls back to the already loaded default theme. Due to this you still get colored output even if there are errors or warning before the configuration and theme is loaded.
I love refactoring!!!! I’ll probably end up spending another 20 hours just on refactoring because it’s so fun!!!! This time around I wanted to refactor the code so that our commands orchestrate stuff instead of the helper functions. For example, pkg.Install would first download a package, then install it, and then link it through shims and shortcuts all by itself. This causes issues because it means error messages become slightly worse, and it creates a class of bugs due to edge cases where we don’t necessarily want this order of orchestration. Hence I did a lot of refactoring in the pkg module. I also ended up adding a way to skip verification of downloads when downloading, installing or updating a package through --skip-verify . It’s a useful option in situations where there is a malformed manifest or simply no hash to begin with.
I’m writing this one right before F1 Qualifying at Spa! Continuing with the trend of some of my recent work, I improved what table outputs look like to be a little bit more readable. We now use proper separators in the form of Unicode Box Drawing Characters . I also made column alignment configurable, which improves legibility for some commands like mocha bucket list and mocha cache show . I’ve attached an image of the scoop and mocha versions of bucket list so you can compare for yourself.
Not sure why I didn’t do this earlier, but I’ve added success messages to commands where it makes sense. Also added a success color to the config so you can change what the success color is. I do still need to improve CLI output quite a bit, but it’s slowly getting there.
My summer break has ended so development is going to be a lot slower from now. I added mocha outdated so you can list outdated apps before upgrading them to a newer version. Besides that I tweaked a lot of stuff related to CLI output. For example I changed search to output one table, and simply outputting exact matches at the top of that table. I also changed a lot of messages which were using LogOutput to LogInfo so they use the correct color and output to stderr and not stdout .
Finally got a bit of time to do a bit of development. First thing I did was remove a field from install.json to match scoop . This means that mocha should be a drop in replacement for existing scoop installs. Then I added partial support for env_set and env_add_path . The main thing I need to do to complete the feature is parse variables and replace them with the appropriate paths. These 2 fields are some of the last manifest fields I need to support besides pre/post (un)install hooks.
Lot of time going into this devlog, but it makes sense since I did do a lot. I did this sweeping refactor of the entire commands module which moved around a lot of code. Essentially each command now gets it’s own directory under the commands module that represents it’s children/parents. For example commands/shim/remove/cmd.go contains code for the mocha shim remove command. Each cmd.go contains a Command struct that has the relevant fields and functions attached to it. This structure just makes things more organized and also means adding test files will be a bit easier since functionality is now isolated. I also sorted out the shim binary. So essentially https://github.com/ScoopInstaller/Shim offers different version of the shim binary which can be installed. Previously I hard coded the code to install cpp v0.1.0 but now users can run mocha shim binary releases to see the options and mocha shim binary setup to install their chosen binary. This also means we actually get the latest releases from GitHub.
Lots of small bug fixes and changes, I’ll just list them out: feat(cmd): allow removal of multiple shims in one execution (f2fae3f) fix(manifest): correctly ignore invalid shortcut entries (6a08478) fix(fileops): use correct registry type (5d5d796) fix(config): seed config with defaults (9dfaaff) fix(cmd): use correct release sources (a2a9ba1) fix(cmd): use bucket from install info (5a9109b) I also added support for more file types being shimmed, which helps a lot with compatibility. The file types are .py , .bat , .cmd , .jar and .ps1 .
I forgot to make a devlog in between so this will be like 2 bigger devlogs. I parallelized bucket updates, which speeds it up quite a bit. This also allowed me to try out parallelism even more, which I plan to apply throughout the CLI later on. I also added configuration options for the runners which mocha shim will use to run certain file types. For example, you can set the python-runner to select the python version that’ll be used to run python scripts that are shimmed. Downloads now have a progress bar, so you don’t need to wonder whether something is happening or not during a long download. Finally env_set is fully supported since I added the relevant variable parsing. This was pretty much just me cleaning out the TODO list before I ship. I also did a lot of smaller bug fixes and refactors as seen below. fix(commands): prevent app installation if already installed (cb27d07) fix(commands): fix config opening with “start” (74f3679) fix(commands): correctly handle non-apps when upgrading (f7419f6) fix: make LogOutput go to Stdout not Stderr (bc10357) fix: handle empty versions correctly (2287da9) fix(pkg): remove correct temp dir (33189b6) fix(shim): warn for unknown shim extension (622c2b4) fix: skip downloads with no hash by default (69d4e35) fix: use correct timeout for downloads (44e527b) fix: drop unnecessary return value from GetExecutableEntries (9fd845c) fix(config): remove unused option (1339971) fix(commands): don’t error for valid results (87c4d6c) refactor(config): rename variables/functions (f253d9d) fix: use unique temp directories (a159e23) refactor: use fmt.Fprintln directly (d2d54bf)
So I wrote a README, added a license (MIT of course) and setup CI/CD so that releases are automatically built and deployed. Honestly I forgot how hard it is to write a good README. You need to get a lot of information through without it looking like a wall of text.
Ships:
I made a package manager for Windows, which is somewhat backwards compatible with scoop packages. To be honest there’s still a lot of work that I want to do, but I have exams and college application coming up soon so I can’t. That’s not to say I’m not happy with the state of the ship. At the very least it has all the core features that a package manager should have, but there are still a lot of bugs which is why this is only v0.0.1. The biggest challenge by far was trying to figure out how Scoop does things internally. A lot of stuff just doesn’t have documentation, so you have to dig through the really messy PowerShell source code....
|
1793008139.1576834
|
1793094539.1576834
|
|
34622
|
Assistocrat by @TheGeekachu | Stardance
|
TheGeekachu
|
1
|
5.48
|
25
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T18:56:51Z", "hours": 5.0, "multiplier": 5.32, "payout": 25, "blessing": "neutral", "text": "ASSISTOCRAT - AN AI 3D MODEL GEN FOR YOUR PROJECTS I have made Assistocrat, a complete AI 3D Model Generator, that is terrible at generating models. This pointless venture was inspired by LEAP71 in Dubai, and uses Meshlib and Reflex combined with Python for a full stack. Both front and back end are managed by reflex cloud, meaning the web app is fully usable at the Try Project link. Thank you for being part of my pointless journey to make a terrible but inspiring 3D model gen.", "repo": "https://github.com/vijayakasee-debug/Assistocrat", "demo": "https://assistocrat-blue-ring.reflex.run/"}]...
|
[{"post_id": 68314, "ts": "202 [{"post_id": 68314, "ts": "2026-09-14T22:24:43Z", "hours": 0.4806, "text": "So, I got flagged for AI use, and I’m pretty sure it’s just a misunderstanding, because I didn’t use any to actually MAKE the project, so I’m assuming using the Hack API as PART of the project counts as AI, so I’ve updated the AI usage decalaration, and let’s see how it goes!"}, {"post_id": 67580, "ts": "2026-09-13T18:38:12Z", "hours": 2.7775, "text": "I finished the build, also using the Hack Club API now, say hello to Assistocrat! Will finish the README now. It’s also deployed to a website, so you can check it out."}, {"post_id": 27879, "ts": "2026-07-13T19:40:23Z", "hours": 1.8528, "text": "Say hi to Assistocrat! Assistocrat is an AI-powered 3D model gen for your projects. It is also my very second Hack Club project and my first one in Reflex, which is a front-end framework for Python. I just got the base functionality working, so it can officially generate a cube! Also, I switched the LLM from Qwen to GPT-OSS because Qwen was really chatty about its reasoning process, overloading my Reflex Python webpage. I’ll be back with more updates!"}]...
|
Title: Assistocrat by @TheGeekachu | Stardance
De Title: Assistocrat by @TheGeekachu | Stardance
Devlogs:
Say hi to Assistocrat! Assistocrat is an AI-powered 3D model gen for your projects. It is also my very second Hack Club project and my first one in Reflex, which is a front-end framework for Python. I just got the base functionality working, so it can officially generate a cube! Also, I switched the LLM from Qwen to GPT-OSS because Qwen was really chatty about its reasoning process, overloading my Reflex Python webpage. I’ll be back with more updates!
I finished the build, also using the Hack Club API now, say hello to Assistocrat! Will finish the README now. It’s also deployed to a website, so you can check it out.
So, I got flagged for AI use, and I’m pretty sure it’s just a misunderstanding, because I didn’t use any to actually MAKE the project, so I’m assuming using the Hack API as PART of the project counts as AI, so I’ve updated the AI usage decalaration, and let’s see how it goes!
Ships:
ASSISTOCRAT - AN AI 3D MODEL GEN FOR YOUR PROJECTS I have made Assistocrat, a complete AI 3D Model Generator, that is terrible at generating models. This pointless venture was inspired by LEAP71 in Dubai, and uses Meshlib and Reflex combined with Python for a full stack. Both front and back end are managed by reflex cloud, meaning the web app is fully usable at the Try Project link. Thank you for being part of my pointless journey to make a terrible but inspiring 3D model gen....
|
1793004451.5859635
|
1793090851.5859635
|
|
59461
|
Personal site! (woohoo!) by @nishy- | Stardance
|
nishy-
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T18:29:05Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What I have made is a website to show my portfolio! It has three sections, a welcome section (with a funny emoji guy who is welcoming) a section with my projects that i’ve made and an about me section! I struggled with thinking of good CSS to use so after scrolling on github and youtube + looking at other projects I found this really cool hover effect!", "repo": "https://github.com/nishyns/CoolWebsite3000", "demo": "https://nishyns.github.io/CoolWebsite3000/"}]...
|
[{"post_id": 67551, "ts": "202 [{"post_id": 67551, "ts": "2026-09-13T18:02:29Z", "hours": 0.8231, "text": "First maybe last devlog Okay so this is my portfolio website! Made for the Personal site mission! So far I added an about me, the project that I made, and a little picture of a emoji + a link to my github and a section that welcomes you! What I struggled with was CSS so i just scrolled on youtube and github till I found this cool hover effect!"}]...
|
Title: Personal site! (woohoo!) by @nishy- | Stard Title: Personal site! (woohoo!) by @nishy- | Stardance
Devlogs:
First maybe last devlog Okay so this is my portfolio website! Made for the Personal site mission! So far I added an about me, the project that I made, and a little picture of a emoji + a link to my github and a section that welcomes you! What I struggled with was CSS so i just scrolled on youtube and github till I found this cool hover effect!
Ships:
What I have made is a website to show my portfolio! It has three sections, a welcome section (with a funny emoji guy who is welcoming) a section with my projects that i’ve made and an about me section! I struggled with thinking of good CSS to use so after scrolling on github and youtube + looking at other projects I found this really cool hover effect!...
|
1793008211.2931843
|
1793094611.2931843
|
|
58477
|
PawXygen Rush by @thapar_smayan | Stardance
|
thapar_smayan
|
2
|
17.0
|
213
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T17:57:19Z", "hours": 7.0, "multiplier": 15.67, "payout": 113, "blessing": "neutral", "text": "I made all of the changes that were requested in my previous ship! PawXygen Rush is a 2D turn based maze game in which you play as various characters and try to escape a decaying space station. I am proud of myself for stepping out of my comfort zone and learning new things. Creating new characters was difficult. If you’re gonn try the game remember to have fun! Its what I made it for.", "repo": "https://github.com/thaparsmayan2011-ctrl/PawXygen-Rush", "demo": "https://pawxygenrush.vercel.app/"}, {"ship_num": 2, "ts": "2026-09-09T13:46:02Z", "hours": 10.0, "multiplier": 10.11, "payout": 100, "blessing": "neutral", "text": "I have made a 2D space themed maze/ survival game in which you play as Laika the space dog from 1957. The HTML canvas part was difficult as it was my first experience with making html graphics. I am proud of pushing myself and stepping out of my comfort zone. Have fun!", "repo": "https://github.com/thaparsmayan2011-ctrl/PawXygen-Rush", "demo": "https://pawxygenrush.vercel.app/"}]...
|
[{"post_id": 67541, "ts": "202 [{"post_id": 67541, "ts": "2026-09-13T17:51:45Z", "hours": 3.1944, "text": "I have finally made all the requested changes to PawXygen Rush. I have deployed it to vercel. I’m gonna ship now!"}, {"post_id": 66747, "ts": "2026-09-12T17:15:35Z", "hours": 4.0172, "text": "After the feedback I received on PawXygen Rush, I have resumed my work on this game. I have started by adding a menu, level selector, character selection and I have made the canvas scale with your window size."}, {"post_id": 64794, "ts": "2026-09-09T13:36:44Z", "hours": 2.0289, "text": "I have finally finished the project!!! After cleaning up the repo all that will be left is to SHIP!!!!"}, {"post_id": 64666, "ts": "2026-09-09T07:41:43Z", "hours": 2.9558, "text": "I have finished the graphics and coded the entire game, this took me like 2 hours but it was fun. All that is left to do is add a legend, level chooser and a soundtrack."}, {"post_id": 63693, "ts": "2026-09-07T17:04:00Z", "hours": 1.8672, "text": "I have finished cleaning up the game logic and added some of the graphics. Next I’ll add the rest of the graphics and a few more levels. Currently the player isn’t visible coz I haven’t added its graphics yet. Trust the Process!"}, {"post_id": 62908, "ts": "2026-09-06T13:20:20Z", "hours": 2.5056, "text": "I have added the core game logic along with the sound effects. I am facing some issues with particles but i’ll figure it out. I am left with clean up, particle debugging and graphics for now."}, {"post_id": 62035, "ts": "2026-09-05T08:00:55Z", "hours": 0.5442, "text": "I am creating a space themed game in which you play as Laika the dog and navigate through a decaying space station. I have coded the core game logic for now. Next I will work on the designs of the sprites."}]...
|
Title: PawXygen Rush by @thapar_smayan | Stardance Title: PawXygen Rush by @thapar_smayan | Stardance
Devlogs:
I am creating a space themed game in which you play as Laika the dog and navigate through a decaying space station. I have coded the core game logic for now. Next I will work on the designs of the sprites.
I have added the core game logic along with the sound effects. I am facing some issues with particles but i’ll figure it out. I am left with clean up, particle debugging and graphics for now.
I have finished cleaning up the game logic and added some of the graphics. Next I’ll add the rest of the graphics and a few more levels. Currently the player isn’t visible coz I haven’t added its graphics yet. Trust the Process!
I have finished the graphics and coded the entire game, this took me like 2 hours but it was fun. All that is left to do is add a legend, level chooser and a soundtrack.
I have finally finished the project!!! After cleaning up the repo all that will be left is to SHIP!!!!
After the feedback I received on PawXygen Rush, I have resumed my work on this game. I have started by adding a menu, level selector, character selection and I have made the canvas scale with your window size.
I have finally made all the requested changes to PawXygen Rush. I have deployed it to vercel. I’m gonna ship now!
Ships:
I have made a 2D space themed maze/ survival game in which you play as Laika the space dog from 1957. The HTML canvas part was difficult as it was my first experience with making html graphics. I am proud of pushing myself and stepping out of my comfort zone. Have fun!
I made all of the changes that were requested in my previous ship! PawXygen Rush is a 2D turn based maze game in which you play as various characters and try to escape a decaying space station. I am proud of myself for stepping out of my comfort zone and learning new things. Creating new characters was difficult. If you’re gonn try the game remember to have fun! Its what I made it for....
|
1792972383.8881495
|
1793058783.8881495
|
|
61838
|
python learning by @Noebal | Stardance
|
Noebal
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T17:42:43Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I am learning python. It is a completly new language for me. I made some mini projects and published them on github.", "repo": "https://github.com/noamopilo/python_learning", "demo": "https://github.com/noamopilo/python_learning/blob/main/README.md"}]...
|
[{"post_id": 67480, "ts": "202 [{"post_id": 67480, "ts": "2026-09-13T16:27:13Z", "hours": 0.5617, "text": "I learned to randomize things by making a random password generator."}]...
|
Title: python learning by @Noebal | Stardance
Dev Title: python learning by @Noebal | Stardance
Devlogs:
I learned to randomize things by making a random password generator.
Ships:
I am learning python. It is a completly new language for me. I made some mini projects and published them on github....
|
1793058493.608356
|
1793144893.608356
|
|
59860
|
Duckosaur by @Harupi | Stardance
|
Harupi
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T17:36:48Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "My girlfriend asked me to make a t-rex game with a duck she and her roommates had drawn, so I did it. This game features randomly spawning cactuses, score, and a beautiful duck. I’ll probably make a leaderboard and maybe add flying mobs in a future version. Hope you like it !", "repo": "https://github.com/Hvrnbi/duckosaur", "demo": "https://duckosaur.harupi.me"}]...
|
[{"post_id": 67532, "ts": "202 [{"post_id": 67532, "ts": "2026-09-13T17:31:59Z", "hours": 1.9417, "text": "Duckosaur devlog 3 - Ready to ship ! This time, I made the score system, the styling, the README, and the deployment ! Now the first version is ready to be shipped !"}, {"post_id": 65278, "ts": "2026-09-10T09:13:42Z", "hours": 2.0406, "text": "Duckosaur devlog 2 - Hellooooo The duck is not a yellow square anymore ! I also added randomly spawning cactus (I’ll have to draw a cactus by myself). They move and if they touch the player, the game is over. Have a nice day !"}, {"post_id": 64295, "ts": "2026-09-08T16:09:01Z", "hours": 0.395, "text": "Duckosaur devlog 1 - My girlfriend asked me to make a t-rex game with a duck she’d drawn, so I’m doing it. Hello ! I first tried to make it in Rust using Dioxus to publish it as a website, but after struggling for over 2 hours trying to remove the “jumping” class from the player after a certain amount of time, I decided to switch to javascript since this isn’t a serious project. Should I link the hackatime records of the 2 projects together ? I don’t really know. So I redid in js what I had done in Rust, and now the player can jump more than once ! She hasn’t sent me the drawing yet so for now the duck is a yellow square. See you soon !"}]...
|
Title: Duckosaur by @Harupi | Stardance
Devlogs:
Title: Duckosaur by @Harupi | Stardance
Devlogs:
Duckosaur devlog 1 - My girlfriend asked me to make a t-rex game with a duck she’d drawn, so I’m doing it. Hello ! I first tried to make it in Rust using Dioxus to publish it as a website, but after struggling for over 2 hours trying to remove the “jumping” class from the player after a certain amount of time, I decided to switch to javascript since this isn’t a serious project. Should I link the hackatime records of the 2 projects together ? I don’t really know. So I redid in js what I had done in Rust, and now the player can jump more than once ! She hasn’t sent me the drawing yet so for now the duck is a yellow square. See you soon !
Duckosaur devlog 2 - Hellooooo The duck is not a yellow square anymore ! I also added randomly spawning cactus (I’ll have to draw a cactus by myself). They move and if they touch the player, the game is over. Have a nice day !
Duckosaur devlog 3 - Ready to ship ! This time, I made the score system, the styling, the README, and the deployment ! Now the first version is ready to be shipped !
Ships:
My girlfriend asked me to make a t-rex game with a duck she and her roommates had drawn, so I did it. This game features randomly spawning cactuses, score, and a beautiful duck. I’ll probably make a leaderboard and maybe add flying mobs in a future version. Hope you like it !...
|
1793055095.9596264
|
1793141495.9596264
|
|
61193
|
flappy bird type game by @Putel | Stardance
|
Putel
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T17:19:46Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a flappy bird type game but you can upgrade to different birds with different abilities by collecting coins. A problem I ran into, was that the leaderboard only displayed the accounts made in the browser that the user was playing on.", "repo": "https://github.com/APcoding06/flappyfall", "demo": "https://flappyfall.vercel.app"}]...
|
[{"post_id": 66985, "ts": "202 [{"post_id": 66985, "ts": "2026-09-13T00:01:10Z", "hours": 0.6222, "text": "I am working on building a working leaderboard"}]...
|
Title: flappy bird type game by @Putel | Stardance Title: flappy bird type game by @Putel | Stardance
Devlogs:
I am working on building a working leaderboard
Ships:
I made a flappy bird type game but you can upgrade to different birds with different abilities by collecting coins. A problem I ran into, was that the leaderboard only displayed the accounts made in the browser that the user was playing on....
|
1793055311.5575862
|
1793141711.5575862
|
|
46133
|
Motivation Player by @gavinwu42711 | Stardance
|
gavinwu42711
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T17:12:46Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Often, I feel myself out of motivation and falling into doom scrolling. So, I built an MP3-like player where I can play motivational/funny quotes from my friends to help bring me up One of the main challenges I faced was not really being able to prototype and making my second PCB design ever. I was very anxious for when the PCB originally arrived since I had no way to test on the breadboard if the research I had done online was correct until after I ordered my PCB (I didn’t have the parts at the time and waiting until they came would have taken too long for the PCB). Luckily –and thankfully – the PCB worked out as intended. Overall, given this is my first time using an audio amplifier, working with SD cards, and not using a step-by-step tutorial for any of the parts, I’m really proud that the project works smoothly, with the audio being pretty decent.", "repo": "https://github.com/GavinWu42711/Motivation-Player", "demo": ""}]...
|
[{"post_id": 67498, "ts": "202 [{"post_id": 67498, "ts": "2026-09-13T16:43:00Z", "hours": 1.6131, "text": "Finished! After definitely not procrasinating for a week, I finished the Motivation Player! I soldered all the parts together and assembled it together. Very happy that the PCB worked first try. At this point, the project is done but there are some last things I’d like to say that happened (and I hope to be more careful about in future projects) Bad :C : The container is just a shy too short for the batteries, and almost can’t close (thankfully the plastic top can bend) The potentiometer is really annoying to use All the “controls” would’ve been easier to used if they were elevated from the top Basically, I should’ve put all the input on one side so it could be flush with the lid and every other component on the other side Good :D : The batteries provide more amps than my test set up, leading to a pretty decent volume (the connections are also much better) A weird hardware/software bug causes the buttons and potentiometer to create a spike in the sound, leading to a beeping noise whenever they are used (which actually sounds like it belongs – happy accident) Overall, pretty happy that it worked out. Just need to update the read me to ship!"}, {"post_id": 59955, "ts": "2026-09-02T00:56:22Z", "hours": 2.1642, "text": "Debugging Code Over the past week (on and off), I’ve been slowly assembling the motivation player on the breadboard. I soldered all the parts I could and debugged the code after uploading it to the Raspberry Pi. Can’t say it didn’t take awhile… Luckily, I got the code working and the speaker to function. Unluckily, I had a brain fart and decided minimum voltage = optimal voltage. The audio amplifier works but is kind of scuffed because there isn’t enough voltage and current. I think it works well enough that I won’t solder in an extra battery container to increase the voltage and current (especially because the PCB doesn’t have any regulators) Basically just waiting on the PCB at this point…"}, {"post_id": 49193, "ts": "2026-08-17T20:51:24Z", "hours": 1.32, "text": "Finished Programming :D I finished the firmware! I decided to move to Circuit Python since it works better with the Pi Pico. The project is almost done and ready to be reviewed. Some things I need to do before that: Create a BOM Add more info in the README Add a folder with all the files with the libraries"}, {"post_id": 48580, "ts": "2026-08-17T01:14:31Z", "hours": 0.7186, "text": "Finished CAD! I finished the CAD for the enclosure and got everything assembled in CAD. Luckily everything worked out! :D Might’ve put too much space for the SD card on the PCB… I also started working on the firmware. Originally, I wanted to use Arduino IDE but it might not be the friendliest for the Pi Pico. I plan on looking into circuit python to see if it is better for reading SD cards and playing audio."}, {"post_id": 47825, "ts": "2026-08-16T01:25:33Z", "hours": 1.1167, "text": "Cadding Enclosure (pt. 3) I finished adding the holes, fixed a few issues with not giving enough tolerence, and started adding the rest of the parts in an assembled CAD model to give an idea of the finished product and double check that everything will fit together. Some parts (currently the potentiometer) I couldn’t find the right model for so I’ll be using a stand in model for them. I used the “thread” feature in Fusion and I’m hoping the tolerence won’t be too tight for the screws I have… worst case hot glue will save me XD"}, {"post_id": 47240, "ts": "2026-08-15T01:06:58Z", "hours": 1.0806, "text": "Cadding the enclosure (cont.) I’m almost done with CAD!… at least I think so. I finished up the cutouts in the top and adjusted a few things for the bottom part to better sit the PCB. Decided to go with a 30 mm diameter Gikfun speaker and just have it at the very front. The last part I need to add are the holes for the screws to keep the top and bottom together. Not sure the size for that so I’ll need to do some more research. Hopefully I didn’t make the sides of the container too thin…"}, {"post_id": 46637, "ts": "2026-08-14T01:08:13Z", "hours": 1.0217, "text": "Cadding the enclosure Started using Fusion360 to CAD the enclosure for the project. I got the bottom part mostly done and got 2 of the holes needed for the lid done. I still need to do the holes for the other buttons, display, and screws to put together. At some point, I’ll also need to finalize the speaker I want to be able to decide where to have it in the CAD."}, {"post_id": 46603, "ts": "2026-08-13T23:17:58Z", "hours": 0.4333, "text": "PCB Finished (Actually) Turns out I forgot to do some steps… oops haha? Luckily it was just running the DRC, adding a few wires between the ground references and adding a rectangle in the cut layer. Onto making the CAD for the box!"}, {"post_id": 46082, "ts": "2026-08-13T01:13:11Z", "hours": 1.6508, "text": "PCB Finished! (I hope…) I finished the PCB design! For the most part, it was smooth sailing to rearrange all the components into a neat-ish rectangle and to wire everything up. There were a few issues with the parts being wired wrong in the schematic that I had to fix… Hopefully no more of that comes up. I’ll be doing final touches and double checking the PCB before moving on to making a 3d print for its case."}, {"post_id": 44822, "ts": "2026-08-10T20:56:00Z", "hours": 1.8167, "text": "PCB Design (2) I finished up the schematic for the PCB and assigned all the footprints for the parts I’m using. I decided to stick with the LM386 and to use 3 AA batteries to achieve the minimum voltage needed for the audio amplifier. For the power toggle switch and the speaker, I decided to just use connector wires as a comprise for not knowing which one I will be using (gives me more flexibility for where I want them to be on the final build) Next steps I need to do: Design the PCB Write the code/firmware Design the CAD model for the finished project and any 3D printed parts I need"}, {"post_id": 44264, "ts": "2026-08-09T22:01:22Z", "hours": 0.8, "text": "PCB Design Using KiCad, I wired together most of the components I plan on using. These include: A play button A random button (to give a random motivational audio) A rotary encoder (to scroll through all the available audios) A Raspberry Pi Pico (the microcontroller to read the SD card and do all the logic) SSD 1306 (oled display – 1.36 inch) SD card module (to hold the audio files) Some things that I still need to add: Audio amplifier Speaker Potentiometer (for volume adjustment) Battery container (idk what to call it) w/ a power switch I was originally going to use the LM386 for audio amplifying but it runs above 3.3V according to online research. If anyone has reccomendations, please let me know! (I have no idea what I’m doing to be honest)"}]...
|
Title: Motivation Player by @gavinwu42711 | Starda Title: Motivation Player by @gavinwu42711 | Stardance
Devlogs:
PCB Design Using KiCad, I wired together most of the components I plan on using. These include: A play button A random button (to give a random motivational audio) A rotary encoder (to scroll through all the available audios) A Raspberry Pi Pico (the microcontroller to read the SD card and do all the logic) SSD 1306 (oled display – 1.36 inch) SD card module (to hold the audio files) Some things that I still need to add: Audio amplifier Speaker Potentiometer (for volume adjustment) Battery container (idk what to call it) w/ a power switch I was originally going to use the LM386 for audio amplifying but it runs above 3.3V according to online research. If anyone has reccomendations, please let me know! (I have no idea what I’m doing to be honest)
PCB Design (2) I finished up the schematic for the PCB and assigned all the footprints for the parts I’m using. I decided to stick with the LM386 and to use 3 AA batteries to achieve the minimum voltage needed for the audio amplifier. For the power toggle switch and the speaker, I decided to just use connector wires as a comprise for not knowing which one I will be using (gives me more flexibility for where I want them to be on the final build) Next steps I need to do: Design the PCB Write the code/firmware Design the CAD model for the finished project and any 3D printed parts I need
PCB Finished! (I hope…) I finished the PCB design! For the most part, it was smooth sailing to rearrange all the components into a neat-ish rectangle and to wire everything up. There were a few issues with the parts being wired wrong in the schematic that I had to fix… Hopefully no more of that comes up. I’ll be doing final touches and double checking the PCB before moving on to making a 3d print for its case.
PCB Finished (Actually) Turns out I forgot to do some steps… oops haha? Luckily it was just running the DRC, adding a few wires between the ground references and adding a rectangle in the cut layer. Onto making the CAD for the box!
Cadding the enclosure Started using Fusion360 to CAD the enclosure for the project. I got the bottom part mostly done and got 2 of the holes needed for the lid done. I still need to do the holes for the other buttons, display, and screws to put together. At some point, I’ll also need to finalize the speaker I want to be able to decide where to have it in the CAD.
Cadding the enclosure (cont.) I’m almost done with CAD!… at least I think so. I finished up the cutouts in the top and adjusted a few things for the bottom part to better sit the PCB. Decided to go with a 30 mm diameter Gikfun speaker and just have it at the very front. The last part I need to add are the holes for the screws to keep the top and bottom together. Not sure the size for that so I’ll need to do some more research. Hopefully I didn’t make the sides of the container too thin…
Cadding Enclosure (pt. 3) I finished adding the holes, fixed a few issues with not giving enough tolerence, and started adding the rest of the parts in an assembled CAD model to give an idea of the finished product and double check that everything will fit together. Some parts (currently the potentiometer) I couldn’t find the right model for so I’ll be using a stand in model for them. I used the “thread” feature in Fusion and I’m hoping the tolerence won’t be too tight for the screws I have… worst case hot glue will save me XD
Finished CAD! I finished the CAD for the enclosure and got everything assembled in CAD. Luckily everything worked out! :D Might’ve put too much space for the SD card on the PCB… I also started working on the firmware. Originally, I wanted to use Arduino IDE but it might not be the friendliest for the Pi Pico. I plan on looking into circuit python to see if it is better for reading SD cards and playing audio.
Finished Programming :D I finished the firmware! I decided to move to Circuit Python since it works better with the Pi Pico. The project is almost done and ready to be reviewed. Some things I need to do before that: Create a BOM Add more info in the README Add a folder with all the files with the libraries
Debugging Code Over the past week (on and off), I’ve been slowly assembling the motivation player on the breadboard. I soldered all the parts I could and debugged the code after uploading it to the Raspberry Pi. Can’t say it didn’t take awhile… Luckily, I got the code working and the speaker to function. Unluckily, I had a brain fart and decided minimum voltage = optimal voltage. The audio amplifier works but is kind of scuffed because there isn’t enough voltage and current. I think it works well enough that I won’t solder in an extra battery container to increase the voltage and current (especially because the PCB doesn’t have any regulators) Basically just waiting on the PCB at this point…
Finished! After definitely not procrasinating for a week, I finished the Motivation Player! I soldered all the parts together and assembled it together. Very happy that the PCB worked first try. At this point, the project is done but there are some last things I’d like to say that happened (and I hope to be more careful about in future projects) Bad :C : The container is just a shy too short for the batteries, and almost can’t close (thankfully the plastic top can bend) The potentiometer is really annoying to use All the “controls” would’ve been easier to used if they were elevated from the top Basically, I should’ve put all the input on one side so it could be flush with the lid and every other component on the other side Good :D : The batteries provide more amps than my test set up, leading to a pretty decent volume (the connections are also much better) A weird hardware/software bug causes the buttons and potentiometer to create a spike in the sound, leading to a beeping noise whenever they are used (which actually sounds like it belongs – happy accident) Overall, pretty happy that it worked out. Just need to update the read me to ship!
Ships:
Often, I feel myself out of motivation and falling into doom scrolling. So, I built an MP3-like player where I can play motivational/funny quotes from my friends to help bring me up One of the main challenges I faced was not really being able to prototype and making my second PCB design ever. I was very anxious for when the PCB originally arrived since I had no way to test on the breadboard if the research I had done online was correct until after I ordered my PCB (I didn’t have the parts at the time and waiting until they came would have taken too long for the PCB). Luckily –and thankfully – the PCB worked out as intended. Overall, given this is my first time using an audio amplifier, working with SD cards, and not using a step-by-step tutorial for any of the parts, I’m really proud that the project works smoothly, with the audio being pretty decent....
|
1793004821.4739
|
1793091221.4739
|
|
54108
|
Pantry_Scanner by @theodora | Stardance
|
theodora
|
1
|
20.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T17:11:38Z", "hours": 20.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finally, I finished my first version of my pantry scanner. Due to camera quality, sometimes it can read the expiry date; sometimes it can’t, but I already tried my best to make it work What I actually built –Firmware on ESP32-CAM: press a button, it captures a photo and uploads it over WI-Fi – A local Python backend that reads the photo, tries OCR for the expiry date, attempts barcode decoding using an external API and saves everything to a database – A web dashboard showing every scanned item sorted by soonest-expiring first, with edit and remove buttons for fixing up anything the camera couldn’t capture The hard part The hardest part is to get the camera to read text and turn it into the dashboard. I went through extensive debugging, more than I have recorded in the devlog. Fixing the lens, dealing with blur, and looking at the barcode-decoding problem, it turned out the camera quality is the major issue. Next Step – Use a dedicated barcode scanner instead of relying on the camera –Create a fixed scanning stand using 3D printing for more consistent capture quality than hand positioning. – Attach a macro lens attachment for the camera to improve small print in OCR", "repo": "https://github.com/theodora-sin/pantry_scanner", "demo": ""}]...
|
[{"post_id": 67514, "ts": "202 [{"post_id": 67514, "ts": "2026-09-13T17:08:53Z", "hours": 3.7453, "text": "Devlog 5: Finally, I finish my first version of my pantry scanner, due to camera quality, sometime it can read the expiry date, sometime it can’t, but I already try my best to make it work. I can’t film the whole process, but I try to snip a bit of how this camera actually work in screenshot and a video"}, {"post_id": 65995, "ts": "2026-09-11T14:43:02Z", "hours": 1.2389, "text": "Devlog 4: Today, I connected the front and back end; however, the camera quality wasn’t as good as I expected, and it couldn’t scan the barcode to retrieve the data. Now, I am rethinking how to retrieve the data and what the next step should be."}, {"post_id": 64241, "ts": "2026-09-08T14:30:46Z", "hours": 9.4747, "text": "Devlog3: ##Working on front end My front end is using Python as the main language, alongside html and css, the website look plain as I just built the basic version Next step: connect front end and back end"}, {"post_id": 59594, "ts": "2026-09-01T14:40:45Z", "hours": 1.7883, "text": "Devlog 2: This devlog, it records how the front end works. I use arduino IDE with coding language C+ to make the ESP32 Camera work, It can capture 1600x1200px, which is useful for the backend. The backend is used to store the captured picture and analyse the expiry date of the food."}, {"post_id": 57898, "ts": "2026-08-30T07:12:02Z", "hours": 3.9806, "text": "#Devlog 1: Hi, welcome to a hardware project devlog. In this project, I am creating a pantry scanner. I have drawn my schematic board and am soldering the PCB. I forgot to record my soldering part, but here is the overview of the project."}]...
|
Title: Pantry_Scanner by @theodora | Stardance
De Title: Pantry_Scanner by @theodora | Stardance
Devlogs:
#Devlog 1: Hi, welcome to a hardware project devlog. In this project, I am creating a pantry scanner. I have drawn my schematic board and am soldering the PCB. I forgot to record my soldering part, but here is the overview of the project.
Devlog 2: This devlog, it records how the front end works. I use arduino IDE with coding language C+ to make the ESP32 Camera work, It can capture 1600x1200px, which is useful for the backend. The backend is used to store the captured picture and analyse the expiry date of the food.
Devlog3: ##Working on front end My front end is using Python as the main language, alongside html and css, the website look plain as I just built the basic version Next step: connect front end and back end
Devlog 4: Today, I connected the front and back end; however, the camera quality wasn’t as good as I expected, and it couldn’t scan the barcode to retrieve the data. Now, I am rethinking how to retrieve the data and what the next step should be.
Devlog 5: Finally, I finish my first version of my pantry scanner, due to camera quality, sometime it can read the expiry date, sometime it can’t, but I already try my best to make it work. I can’t film the whole process, but I try to snip a bit of how this camera actually work in screenshot and a video
Ships:
Finally, I finished my first version of my pantry scanner. Due to camera quality, sometimes it can read the expiry date; sometimes it can’t, but I already tried my best to make it work What I actually built –Firmware on ESP32-CAM: press a button, it captures a photo and uploads it over WI-Fi – A local Python backend that reads the photo, tries OCR for the expiry date, attempts barcode decoding using an external API and saves everything to a database – A web dashboard showing every scanned item sorted by soonest-expiring first, with edit and remove buttons for fixing up anything the camera couldn’t capture The hard part The hardest part is to get the camera to read text and turn it into the dashboard. I went through extensive debugging, more than I have recorded in the devlog. Fixing the lens, dealing with blur, and looking at the barcode-decoding problem, it turned out the camera quality is the major issue. Next Step – Use a dedicated barcode scanner instead of relying on the camera –Create a fixed scanning stand using 3D printing for more consistent capture quality than hand positioning. – Attach a macro lens attachment for the camera to improve small print in OCR...
|
1793008152.4330242
|
1793094552.4330242
|
|
14130
|
Immortal Cultivation Mod (修仙) by @m3e660 | Stardan Immortal Cultivation Mod (修仙) by @m3e660 | Stardance...
|
m3e660
|
4
|
345.45
|
3100
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T17:07:11Z", "hours": 76.0, "multiplier": 18.81, "payout": 1254, "blessing": "neutral", "text": "I WANT MY POLAROID GO GEN 3 PLSSSSS I AM JUST A TINY BIT AWAY", "repo": "https://github.com/m3e66/immortal_cultivation_mod-source", "demo": "https://modrinth.com/mod/immortal-cultivation-mod"}, {"ship_num": 2, "ts": "2026-08-23T01:53:50Z", "hours": 96.0, "multiplier": 15.99, "payout": 1340, "blessing": "neutral", "text": "I want my VR ahaahahahahah plssss Nothing much to say here just look at the images and video in the previous logs", "repo": "https://github.com/m3e66/immortal_cultivation_mod-source", "demo": "https://modrinth.com/mod/immortal-cultivation-mod"}, {"ship_num": 3, "ts": "2026-07-11T00:52:33Z", "hours": 44.0, "multiplier": 18.82, "payout": 297, "blessing": "neutral", "text": "This update adds a huge amount of new content! You can now explore newly added structures, use new spells, control and evolve zombies through the new 怨气 and 控尸 systems, and wear new design accessories. The 金丹 system has also been remade with its own pocket dimension, breakthrough system, and new mechanics. Spell casting has been reworked, flying swords are now fully usable, and a complete forging system lets you craft weapons using materials, molds, purity, and temperature. There are also plenty of new items, crops, effects, and fixes to improve the overall experience!", "repo": "https://github.com/m3e66/immortal_cultivation_mod-source", "demo": "https://modrinth.com/mod/immortal-cultivation-mod"}, {"ship_num": 4, "ts": "2026-06-16T02:19:15Z", "hours": 23.0, "multiplier": 10.72, "payout": 209, "blessing": "neutral", "text": "Getting Started The first steps of cultivation. Enlightenment Pill Use an Enlightenment Pill to step from mortal life into Qi Refining. The stat menu shows qi, realm, max health, max age, luck, moral, soul, thoughts, spirit roots, and cultivation progress. Spells Fireball (Lianqi Early, Fire, 10 Qi) Shoots a fireball that deals damage and ignites targets. Lingbeng (Lianqi Late, Thunder, 50 Qi) Enter a breaking-force state. Punch a block or entity to release an explosion. Recasting stacks the explosion radius. Regeneration (Lianqi Middle, Wood, 20 Qi) Restores health with a short healing effect. Beam (Lianqi Early, Light, 30 Qi) Allows you to sense nearby entities. Earth Escape (Lianqi Late, Earth) Sink underground. Move faster while underground. Consumes Qi over time until you surface. Cleanse (Lianqi Early, Water, 10 Qi) Removes harmful effects from yourself. Qi Gathering (Lianqi Early, Wind, 0 Qi) Greatly increases Qi regeneration. You cannot attack or block while active. Damage taken is tripled. Ignite Flare (Lianqi Early, Fire, 10 Qi) Fires a straight flare. Ignites the block it hits. Spirit Sight (Lianqi Early, Light, 5 Qi/sec) Grants night vision while active. Zhenshan Palm (Foundation Establishment Middle, Earth, 130 Qi) Releases a giant hand-shaped earth wave for 3 seconds. Destroys blocks touched by the palm. Light Ball (Foundation Establishment Late, Light, 30 Qi summon, 10 Qi per shot) Summons 6 light balls in a hexagon behind you. Can stack up to 3 rings. Punch to fire one ball. Shift-punch to fire all balls. Each shot deals 50 damage. Each shot can break through up to 24 blocks.", "repo": "https://github.com/m3e66/immortal_cultivation_mod-source", "demo": "https://modrinth.com/mod/immortal-cultivation-mod"}]...
|
[{"post_id": 81380, "ts": "202 [{"post_id": 81380, "ts": "2026-10-21T02:39:43Z", "hours": 10.3219, "text": "Devlog #33** A shentong ability:湮灭未尽之人 and a dummy for testing purposes A lot of bug fixing and small thing like better formatting of the gui etc"}, {"post_id": 80679, "ts": "2026-10-18T13:51:12Z", "hours": 8.0572, "text": "Devlog #32 Added new effect in domain like abilities: Lilies, ice, big space warp (don’t yell at this devlog, I wrote it on the phone)"}, {"post_id": 80384, "ts": "2026-10-17T14:03:45Z", "hours": 10.4, "text": "Devlog #31 Added BLAST QI, where you can BLAST YOUR QI in your enemies face and be cool And fix the flying sword thing And fix a whole a lot of fix"}, {"post_id": 79682, "ts": "2026-10-15T01:38:45Z", "hours": 8.0478, "text": "Devlog #30 Remaking the whole life sim system adding new event (making them actually have somewhat of a story) added new battle system and more small thing to better help the experience And ton of bugs"}, {"post_id": 79208, "ts": "2026-10-13T01:21:10Z", "hours": 9.6014, "text": "Devlog #29 Remake all the magic circle texture and automated it (tool here https://m3e66.github.io/xiuxian-circle-generator/ ) Optimize all the code Added new body types 赤炎灵体 — Crimson Flame Body +25% fire damage; burning enemies take 10% extra damage from you 玄冰灵体 — Profound Ice Body +25% ice damage; attacks build Frost, briefly freezing enemies after 5 stacks 紫霄雷体 — Violet Thunder Body +25% lightning damage; every fifth lightning attack summons an extra thunderbolt dealing 50% damage 青木长生体 — Evergreen Longevity Body +15% maximum HP; +25% natural HP regeneration; +10% healing effectiveness 厚土玄体 — Profound Earth Body +20% armor; standing still for 3s grants an additional 10% damage reduction until moving 庚金剑体 — Geng Metal Sword Body +20% sword damage; +10% sword attack speed; sword strikes ignore 10% armor 沧海灵体 — Vast Sea Body +20% water damage; +20% maximum Qi; water spells cost 15% less Qi 逐风灵体 — Windchaser Body +20% movement speed; +15% attack speed; dodging grants +10% damage for 3s 先天道体 — Innate Dao Body +15% cultivation gain; all spells cost 10% less Qi; +5% all elemental damage 无垢灵体 — Immaculate Spirit Body +30% negative-effect resistance; debuffs last 25% less time; +15% healing received 九窍玲珑体 — Nine-Orifice Exquisite Body +25% Qi regeneration; +10% maximum Qi; spell cooldowns reduced by 10% 万毒之体 — Myriad Poison Body Immune to poison; poison attacks deal +25% damage; poisoned enemies restore 1% max Qi when killed 血煞魔体 — Blood Fiend Body +20% melee damage; heal for 5% of melee damage dealt; healing from pills reduced by 20% 不灭金身 — Imperishable Golden Body +15% maximum HP; +15% damage reduction; when HP falls below 20%, gain 30% damage reduction for 5s 吞灵之体 — Spirit-Devouring Body Killing an enemy restores 5% max Qi; attacks against shields and Qi barriers deal +20% damage 荒古圣体 — Ancient Desolate Sacred Body +25% maximum HP; +20% physical damage; +15% armor; Qi regeneration reduced by 15% 太阴神体 — Supreme Yin Divine Body +30% dark and ice damage; +20% Qi regeneration at night; sunlight reduces Qi regeneration by 15% 太阳神体 — Solar Divine Body +30% fire and light damage; immune to burning; +20% HP regeneration in sunlight"}, {"post_id": 78918, "ts": "2026-10-12T01:31:10Z", "hours": 10.5922, "text": "Devlog #28 Added 8 guide books for different part of the mod Added new bear model"}, {"post_id": 78651, "ts": "2026-10-11T05:20:58Z", "hours": 10.4994, "text": "Devlog #27 Improve overall guidance and improve existing model"}, {"post_id": 77981, "ts": "2026-10-09T03:03:43Z", "hours": 9.3439, "text": "Devlog #26 I going to improve the overall survivability of the mod: So there is going to be like more guides book in coming And more item that were creative only now actually getting ways to get the items"}, {"post_id": 76814, "ts": "2026-10-04T17:37:22Z", "hours": 9.2553, "text": "Devlog #25 Add a lot of new weapons A lot of new fire And more clothes"}, {"post_id": 75392, "ts": "2026-09-29T22:21:34Z", "hours": 9.3814, "text": "Devlog #24 121 NEW SPELL ICONSSS MY SOULLLSLLSLSLLS I pick the best 20 icon i love"}, {"post_id": 72892, "ts": "2026-09-23T23:37:48Z", "hours": 10.9486, "text": "Devlog #23 REVISE MOSTLY OF THE VFX AND ADD ALOTTTTT OF DRIP"}, {"post_id": 67505, "ts": "2026-09-13T17:02:49Z", "hours": 8.2731, "text": "Devlog #22 Not much like I said school started, it was more planning and stuff, revised npc battle logic"}, {"post_id": 64408, "ts": "2026-09-08T19:30:48Z", "hours": 15.1625, "text": "Devlog #21 Added whip physics Added new item mechinacs Added straw doll Added a luck system"}, {"post_id": 61873, "ts": "2026-09-05T01:00:25Z", "hours": 12.3611, "text": "Devlog #20 School is starting and college stuff is like piling on so my brain is slowing down, so there isnt much stuff i did when you compare it to the hours in this devlog. Mirror Thingy It is like a shield can absorb some dmg Straw Doll Like a totem of undying Jei Compatibility You can see the forging recipes in Jei now!"}, {"post_id": 59887, "ts": "2026-09-01T21:31:56Z", "hours": 11.3725, "text": "Devlog #19 Some mobs, yea that is really it"}, {"post_id": 59086, "ts": "2026-08-31T18:20:43Z", "hours": 10.5844, "text": "Devlog #18 Working on flying boat or valkyrie skies like things, I dont think that is copyright as it is not the main part of my mod, if it is tell me in the comments thanks Flying Boats Four core tiers control maximum capture size: Low: 100×100×100 Medium: 200×200×200 High: 400×400×400 Sect: 800×800×800 Existing ships can still be minimized into an item and placed again later The lingzhou core GUI is where you manage the ship. It shows the ship’s status, tier, size, fuel/灵气, current pilot, permissions, settings, movement mode, anchor controls, shutdown, and storage Fuel use is based on how many blocks the ship actually has and what it is doing. Hovering uses fuel, while an anchored ship does not The ship helm is used to pilot the lingzhou. While controlling it, the mouse wheel can be used to change the ship’s speed Autopilot lets you enter destination coordinates and have the ship travel toward them automatically Players and other entities move together with the ship. You can walk around the deck, jump, climb stairs, and move around normally while the ship is flying If part of the ship gets disconnected, that section is no longer supported by the lingzhou and falls back into the world as normal blocks Turning off the lingzhou core removes the ship’s magical lift. The ship keeps whatever momentum it already had and begins falling under gravity Etc Fix system prices Fix textures Fix names of items Added JEI compatibility for 鼎 forging Added recipes for a lot of weapons Removed combo system Added a fox beast"}, {"post_id": 55551, "ts": "2026-08-27T14:05:21Z", "hours": 9.8333, "text": "Devlog #17 MORE STRUCTURES i got into the phase of building so more structres!"}, {"post_id": 54475, "ts": "2026-08-25T14:27:13Z", "hours": 8.5392, "text": "Devlog #16 Did some structures, and there is the talisman data like I said Talismans Tier 1 清尘符 — Dust-Cleansing: Extinguishes fire and removes blindness and darkness 微光符 — Dim-Light: Creates light ball for 2–3 minutes, hold while aiming at a block to anchor it, you can use water extinguishes it 敛声符 — Sound-Gathering: For 25 seconds, nearby mobs lose you as their target when more than 2.5 blocks away 火球符 — Fireball: Fires 8 fireballs. Each deals 10 damage in a 2.4 block explosion 风刃符 — Wind-Blade: Fires 3 wind blades dealing 11 damage each and pushing targets backward Tier 2 星火符 — Sparkfire: Fires 5 flames dealing 30 damage each and igniting for 4 seconds 薄金护符 — Thin-Gold Protection: Give shield worth 200 + 1% maximum HP for 15 seconds 缠丝困符 — Spirit-Silk Binding: Fires 6 strands dealing 1 damage each. Strands stack slowness for 5 seconds and 4+ strands nearly immobilize the target 短途神行符 — Short-Journey Divine-Step: Give speed VIII and jump boost III for 30 seconds 传音符 — Voice-Transmission: Sends a written message to another player with in 100 blocks in the same dimension 修复符 — Repair: Repairs the damaged item held in the opposite hand Tier 3 避邪安魂符 — Evil-Warding Soul-Calming: Evil ward for 5 minutes, clears and prevents darkness/nausea, and restores 1% maximum Thoughts each second for 3 minutes 镇扰符 — Disturbance-Suppressing: Hostile mobs within a certain range get slowness II 爆风符 — Blast-Wind: Produces a blast dealing 50 damage, applying daze, and deflecting projectiles 火狱焚邪符 — Evil-Burning Fire-Prison: Creates a 10-block explosion, deals 50 area damage 五雷小伐符 — Lesser Five-Thunder: Deals 40 damage and give slowness III for 1.75 seconds 标记符 — Marking: Permanently marks a entity up to 300 blocks away for owner,and marked mobs are also prevented from naturally despawning 遁空符 — Void-Escape: Teleports in the direction you are looking, normally up to 20 blocks. Repeated uses within 5 seconds lower the maximum to 17, 14, then 12 blocks 化兵符 — Weapon-Manifestation: Creates an owner only temporary sword lasting 25 seconds Tier 4 金光护体符 — Golden-Light Body Protection: Adds a shield worth 600 + 1% maximum HP for 25 seconds 封灵符 — Spirit-Sealing: Seals everyone’s qi within 3 blocks of impact, interrupts casting 破障开山符 — Barrier-Breaking Mountain-Opening: Creates a massive 20-block explosion dealing 500 area damage Tier 5 千里传讯符 — Thousand-Li Message: Long range version of the Voice Transmission Talisman, but it is 1,000 blocks in the same dimension Tier 6 玄焰焚界符 — World-Scorching Black Flame: Creates a black-flame domain that grows from a 5 block radius and deals 100 damage per second. It destroys terrain, consumes dropped items and projectiles, and grows by consuming matter and victims, potentially reaching 48 blocks 五岳辟厄符 — Five-Mountains Calamity-Warding: Grants luck for 10 minutes and stacks three times: +15, then +7, then +3 Ancient 禁空符 — Forbidden-Air: Places a field 24-block radius lasts 8 seconds. It suppresses jumping and flight, and pulls flyingentities downward"}, {"post_id": 52657, "ts": "2026-08-22T22:04:35Z", "hours": 10.8006, "text": "Devlog #15 Uhm a lot of update and unfinished things so it is more of a sneak peek so, there not going to be a long devlog, maybe i am just lazy :). Cosmic Void New dimension that is like space use for mostly travel and battles Talismans A lot I added a lot but it is for later show you guys some pics tho"}, {"post_id": 46112, "ts": "2026-08-13T03:24:25Z", "hours": 11.3525, "text": "Devlog #14 Hmmm why does the picture devlog get more view than the videos, let this be a test then Added: Tutorial System Qi Sensing Thingy Remake Spatial Pouch and like 20 new spells and 4 new method Remake Spatial Pouch Replace the whole backpack like spatial pouch system to a pocket like dimension (in the in the picture) you can place all functionable block and still use it by left clicking it and double click to remove it. (oh and redstone work :) i know there is people that can do smth op with redstone) Tutorial System Full tutorial system that guide you through everything, because so much people said there is a big learning curve, so boom :) Qi Sensing Thingy You can sense entities, items and qi ahhhhh there is not too much stuff or maybe i am too lazy…. definitely not that trust"}, {"post_id": 44036, "ts": "2026-08-09T15:23:44Z", "hours": 11.2058, "text": "Devlog #13 Sooo, did a few entities and most important zhenpan and flags for the magic circle. Zhenpan When empty shift right click to store a magic center When full shift right click to place a magic center back down When store magic center the radius of the magic center is changed to 5 if higher When right click summon a temp magic center of the radius 5 that appear for 20 sec The cost is calculated based on the spirit stones in inventory first then player’s qi Flags Now in the magic center there is a new tab with a gui (in the pics) where you can put flags, they modified the effect of your magic circle. But each newly added flag will increase the cost of the magic center by 1.3x, so the cost can reach to 2693457 qi when using a maxed out zhenpan. Formation Flag Effects Blank Formation Flag — No active effect, used to forge specialized flags Duration Flag — Adds 3 seconds to a temporary Magic Center’s lifetime per flag Amplifier Flag — Adds 1 extra attack whenever an formation triggers Spirit Gathering Flag — Reduces formation fuel/energy consumption by 25% per flag, it does not add the normal ×1.5 flag cost Swift Formation Flag — Makes normal formation effects trigger 30% faster per flag and increases fuel consumption by 30% Qi Return Flag — Restores 10 Qi per flag when a player kills an enemy inside the formation"}, {"post_id": 39851, "ts": "2026-08-03T03:24:18Z", "hours": 12.4425, "text": "Devlog #13 Oops, I got the 8 hours warning and I forgot about it and not I have 12 hours…. sigh. So this update I mainly update the magic ritual mod I have before, and before you ask yes this is the right project, I merge the magic ritual mod with this mod and then revamped the whole thing. This devlog is kinda short because I am getting lazy. Magic Ritual Combo system The Ritual Dagger is your primary tool for creating and managing magic rituals. Right-click with the dagger to open the Magic Circle Selection screen, where you can choose a magic circle type to place at your feet. Shift + Right-click to open the Radius Selection screen, where you can place a Magic Center Block with a chosen radius Attack Red - Grants Strength I Defense Blue - Grants Resistance I Regeneration Green - Grants Regeneration I There are certain pattern for special effect after putting it in its pattern you can punch the center with the dagger and the new magic center is formed Combo visuals and glyph behavior Basic center have one image pattern Combo center have two image pattern If glyph mode is turned off, there is an entering animation"}, {"post_id": 37945, "ts": "2026-07-30T23:57:05Z", "hours": 10.8044, "text": "Devlog #12 A bit in a rush so no video this time, but i added pics so it should be fine. Battle System 战斗状态/Battle Mode: activates when hitting something, or dmg from players, cultivators, or mobs counts too, normally lasts 15 seconds Manual mode: press Y to lock combat mode on until pressed again it can be disabled in settings Normal attacks (left click just normal attack) Heavy attacks (hold attack for 0.5 seconds, then release, normal heavy attacks deal 120% weapon dmg) Blocking (hold left and right click together you dont take dmg, but the weapon loses durability and the blocked dmg harms posture) 架势/Posture: maximum posture is 100 + Physical Attack × 100 + Max HP ÷ 2. It regenerates by 1% each second 破势/Zero Posture: at zero posture, the player is stunned for 1.5 seconds, cannot block, takes 25% more dmg, and loses their current spell charge 外放灵气/External qi: qi injected weapons can release long, straight qi slashes, with the dmg, width, and range scaling with injected qi amount Recent Weapons 精铁枪: A 14 dmg spear normal attacks is like normal, while heavy attacks use a thrust animation and forms a qi cone shaped thingy 铁骨扇: Shift right click switches forms: closed form deals 3 dmg and uses a cone heavy attack and open form deals 5 dmg and uses slash attacks 拂尘: Deals 7 dmg normal attacks is normal too, but its heavy attack spins five times in front of the player, damaging everything within 3 blocks. Right click binds a physically weaker target within 5 blocks for 3 seconds, with a 10 second cooldown 飞刀: Deals 4 dmg and you can stack 5 more all together into one. Right click throws normally and heavy attacks throw a faster knife that can break five blocks before exploding. 飞针 and 袖箭: 飞针 deals 4 dmg, has 1,000 durability, and consumes 10 durability per shot. 袖箭 can be held or equipped in a back accessory slot. Normal attacks fire ordinary needles but heavy attacks fire qi powered explosive needles Etc Added more English Remake some gui Remake some models"}, {"post_id": 35415, "ts": "2026-07-26T20:10:28Z", "hours": 11.2708, "text": "Devlog #11 Sorry for the quality of the video, the quality had to be sacrifice for the length I have formed a habit of writing random thoughts I had, so here is more: wow I kinda hate the 10 hours devlog maybe it is because I am working on a big update orrrr I am just too lazy Revamp Update (plus other stuff (it is more of a random update)): More quest for all of the identity Giving a use for the jindan quality Added 烬火心燎 (mental attack kinda) Added 碎轨星陨 (big boom) Added 洞天借灵 (restore alot of qi) Added 时序迟流 (time slow zone) Added a soul system (when npc or player die there are a soul) Added 炼神术 (increase thoughts stat) Added DunWu Stele (can be used to crave spells into it so for spells like 炼神术 that have no spell item you can learn it like this) Added 噬魂幡 (cool stuff too much so just watch the video) Added 怨魂瓶 (used to store soul) New identity 邪修 功法 improvement (when use qi there is new particle effects) Etc (gui update and others) Config There is a new config button: Auto inject qi into weapon Outside qi (when in new battle system when swing your weapon it shoot out qi slash breaking blocks and killing enemies) New battle system Jindan creative flight New Puzzle Update 灵枢算盘 (the minigame to crave 禁制) it is use to upgrade weapons and eventually evolving it 灵脉六角阵 (the minigame that the player encounters when breaking through jindan) 灵气轨迹 (the minigame when learning spells) 雷劫 (Heavenly Tribulation for jindan) Strike 1 — A thin white-blue bolt 50 dmg Strike 2 — Two branching bolts 100 dmg Strike 3 — Three quick lightning 50 each hit Strike 4 — A thicker blue-white bolt 100 and take 30 dmg per sec for 5 sec Strike 5 — Lightning strikes the ground in eight positions around the player 300 dmg Strike 6 — Several smaller bolts repeatedly strike the player for three seconds 30 each Strike 7 — A massive branching bolt 400 dmg Strike 8 — Purple heavenly lightning 50 dmg per sec for 5 sec Strike 9 — Four bolts strike the north, south, east, and west sides of the player, followed by one direct central strike 400 dmg Strike 10 — A continuous pillar of lightning 100 per 3 sec Strike 11 — Golden lightning begins appearing inside the storm, six golden-white bolts rapidly strike around and directly onto the player 80 each Strike 12 — A giant bolt splits into twelve branches before all branches converge on the player’s position 300 dmg Strike 13 — Lightning repeatedly strikes the player 50 each Strike 14 — A ring of lightning forms in the clouds and releases a rain of dozens of smaller lightning bolts 50 per 3 sec Strike 15 — Nine rapid strikes hit the player in succession 2/4/8/16/32/64/128/256/512 Strike 16 — Every lightning arc inside the clouds gathers into one enormous golden-white tribulation bolt 1000 dmg Easy Mode Acheivement “You Are Really Bad” Get this when you die 10 times in 20 mins Get a hat curio called “Noob Hat” All puzzle are easier by a level"}, {"post_id": 33331, "ts": "2026-07-23T04:32:21Z", "hours": 12.9683, "text": "Devlog #10 Ok so I have work on more than what is showed in the video but this feature is very big so the smaller thing can be talked about in the later devlog Restriction Enchantment Thingy Update 禁制 replaces normal enchantment levels for weapons and artifacts. Every artifact can contain multiple Restriction Layers: 1重禁制 2重禁制 3重禁制 …… 36重禁制 72重禁制 Each successfully engraved layer improves the weapon. Higher layers become progressively harder, more expensive, and more dangerous to refine. After reaching 72重禁制, the weapon can evolve into the next level Rules Controls Click a row to select its node. Click to the left or right of the bead, or use the < and > buttons, to move it. Use W/S or the Up/Down Arrow keys to change the selected node. Use A/D or the Left/Right Arrow keys to move the selected bead. Each bead has a Qi value ranging from 0 to 6 . The golden diamond shows the target value. When every node matches its target value at the same time, the formation is completed and all selected Restrictions are engraved onto the artifact. Moving one bead may also affect linked nodes. Nodes Types Normal Node A standard node that can be moved directly. The node turns gold when its value matches its target. Forward Golden Formation Line Linked beads move in the same direction. For example, moving one bead to the right also moves the connected bead to the right. Reversed Cyan Formation Line A cyan formation line marked with a “−” symbol. Linked beads move in opposite directions. For example, moving one bead to the right moves the connected bead to the left. Locked Node A gray node that cannot be moved directly. The player must move connected nodes to push it into the correct position. Locked nodes begin appearing from a total of 46 Restriction layers . Unstable Node A pulsating red-jade bead. It moves automatically after its displayed action interval and may also affect linked nodes. Unstable nodes begin appearing from Restriction layer 55 . Hidden Node Its target value is displayed as “?” The player must determine the correct target by observing the formation’s behavior or by using a hint. Hidden targets and move limits begin appearing from Restriction layer 73 ."}, {"post_id": 31014, "ts": "2026-07-19T02:14:35Z", "hours": 3.8225, "text": "Devlog #9 Ok so after some ratings and feedbacks I have decided to write better devlogs with more explaining and thoughts. Update: NPC I was working on npc on the last update and decided to further more finish this feature with adding a nice feature of … IDENTITY All Npc will all spawn with a random identity 散修 - Rogue Cultivator 剑修 - Sword Cultivator 刀修 - Saber Cultivator 魔修 - Demonic Cultivator 器修 - Artifact Cultivator 尸修 - Corpse Cultivator 世家子弟 - Noble Clan Disciple 皇族 - Royalty 通缉犯 - Wanted Criminal 体修 - Body Cultivator (Yes I actually added translation for chinese things now) This identity feature not only completes the Npc’s personality but for each identity they have there own special items (which really helps my mod’s survivability, adding a way to obtain items now) They also have their own personal dialogue based on their identity. Jindan Added a new breakthrough screen for zhuji to jindan, and a new dimension for your own personal jindan (like a new world you can channel 2000 qi in the center and you can build chunks in your own world) (see pics) Plans: I was going to further improve the Npcs but after adding a hole a lot of new items for each identity, I realized that I have a other system and features I didnt make (pill making system and more higher level spells)"}, {"post_id": 28609, "ts": "2026-07-14T23:19:52Z", "hours": 11.3969, "text": "New NPC Update The NPC system has been expanded into a full cultivation-style character system. NPCs now have random names, gender, identity, cultivation realm, attributes, spiritual roots, methods, spells, personality, inventory, relationship values, and persistent memory-style data. NPCs can now behave differently depending on personality, identity and relationship with the player. They can fight, flee, use spells, heal, trade, give quests, spar, and interact through a new dialogue screen. (PS the gui shown in the pic is only temporay) Major additions include: Talk, Interact, Trade, Quest, Teach/Learn, Inventory, About, Spar, Invite to Sect, Master/Disciple, and Dao Companion. Relationship stats: friendship, trust, affection, hatred Social actions like praise, joke, insult, threaten, and gifting NPCs can follow, stay, join sects, become master/disciple, or become Dao Companion if requirements are met. New NPC identities were added, with identity-based starting items and loot: 散修 剑修 刀修 魔修 器修 尸修 世家子弟 皇族 通缉犯 体修"}, {"post_id": 26263, "ts": "2026-07-10T23:12:53Z", "hours": 37.7453, "text": "Added shield bar at the right of the hotbar Added 护体气 Added 迷尘障 Added 四方界 Added 固石盾 Added tomb1 structure Added ruined_ritual structure When real death occur spawn a corpse of the player containing all the data of the past player Added attribute 怨气 to all zombie and corpse The longer they exist in the world higher the 怨气 attribute (1000 tick is one 怨气) When right click a zombie with a 镇尸符 stop them from moving When right click a corpse the corpse will stand up with the arm straight up like a zombie add exact 镇尸符 sprite on the corpse face and the corpse stop moving Right click them with a empty hand to take the 镇尸符 off 镇魂铃 when right click will heal 5% of the max hp of your zombie a 5 block radius cooldown 2 seconds 引魂锣 when holding will have a red point only visible to the player and when right click on a block your zombie will jump to that block and if punch a entity the zombie will attack the entity The range of the red particle laser is based on the player’s block reach Added 控尸术 Types of zombie and corpse 怨气 = 100; 白僵 怨气 = 500; 黑僵 怨气 = 2,500; 跳僵 怨气 = 12,500; 飞僵 怨气 = 62,500; 游尸 怨气 = 312,500; 伏尸 怨气 = 1,562,500; 不化骨 怨气 = 7,812,500; 旱魃 When right clicking a zombie with blood they can drink it and give +1 怨气 After getting to 1000 怨气 cant consume anymore Shift right click to feed all of blood in the hand Different modes for zombies attack all hostile (in 5 block radius) defensive (attack all mob that attack owner) Added coffin item, shift right click to store a zombie Added 道服 Added a 血晶, crafted by 9 blood, can feed to all zombie and corpse in all levels, each one is +5 Added Curios slots hair, hair accessory, head accessory, neck accessory, inner clothes, cloak, back accessory, waist accessory Moved coffin to back accessory support, including Curios rendering Added blindfold, blindfold2, straw hat, jade pendant, zhenhun bell, and yinhun gong as wearable accessories Added inventory sprites for accessories and fixed missing textures/positioning Made waist tools cycle with V while held/equipped Added jade pendant meditation speed bonus and tooltip Added 道服 chestplate and worked through texture/model binding fixes Added 血晶 from 9 blood, with zombie/corpse feeding support Added custom spawn egg textures where needed Added/updated English and Chinese translations for missing content Added Jindan dimension entry from stat menu Added 金丹 entity in the Jindan world and normal-world player clone Added Jindan breakthrough screen Added particle effects during breakthrough Added shift-right-click 金丹 entity to spend qi and replicate overworld chunks into the Jindan world Reworked spell selection GUI Added spell wheel ordering and remembered toggles Added selected-spell + R cast flow with charging bar Added/updated several spell scaling effects and combo casting behavior Added flying sword weapon/entity logic Added release, recall, control, shoot, ride, and pickup behavior Added qi cost for controlling/shooting Added flying sword FX when shooting Added zombie/corpse grudge progression and ranks Added higher-rank zombie effects like 尸毒, flying, 阴气 area, drought/dry area Added 鼎 forging GUI with temperature bar, material slots, 玉简 slot, result slot, progress bar, and start button Added forging recipes through 玉简, including 飞剑玉简 and 精铁刀玉简 Added mold items: 剑胚, 刀胚, 枪胚, 武器胚 Added weapon materials Added material purity system and tooltip display Added forging temperature/quality logic, average temp/purity tracking, and failure still producing a mold Added tempering by dropping mold into water, with smoke particles Added 灵火 support from Ignite Flare and normal fire support Added blockgen fixes and custom geo block rendering fixes Added forging system: 玉简, materials, temperature GUI, molds, quality/purity/tooltips Added new crops/items like 糯米 seed/plant, 糯米粥, 墨斗线, 桃木剑, 铜钱剑"}, {"post_id": 12339, "ts": "2026-06-20T03:56:26Z", "hours": 0.4739, "text": "There was more than 4 pictures in the post below so here is the others After use a spell one time +1 proficiency Spell proficiency 入门:after learning the spell get to this level 小成:100 need to get to this level 大成: 500 need to get to this level 圆满:1000 need to get to this level 登峰造极:10000 need to get to this level"}, {"post_id": 12304, "ts": "2026-06-20T02:31:23Z", "hours": 5.2906, "text": "Custom combo system (Where you can make your own custom combo system) Add a zhuji level entity (with its own ai) zhuji1 logic when qi low and enemy 15 blocks away use qi gathering when hp low use regeneration when enemy 10 blocks away use fireball when enemy 5 or lower blocks away use lingbeng and punch them, if qi and hp are all 75 percent or higher then can choose to use lingbeng more time before punch when hp low use wind step to run away when enemy 11 block or higher away and hp high, use wind step to chase the enemy Add a jindan level entity (with its own ai) jidan1 logic same spells as zhuji1 but no lingbeng add a zhenshanplam spell inject qi into weapons keybind v to inject qi into any weapons including modded ones cost 1% of max qi after the injecting the amount of qi injected is add to the tooltip of the weapon amount of qi / 10 = the dmg dealt when attack with this weapon after attack use up amount of qi / 10 of the qi in the weapon base dmg of the weapon x 100 = x(the extra qi / 100 ) x 10 = y if the amount of qi in a weapon is bigger then x then weapon -y durability every sec until not overflow Added shield bar at the right of the hotbar Added 护体气 Added 迷尘障 Added 四方界 Added 固石盾 Added tomb1 structure Added ruined_ritual structure"}, {"post_id": 9608, "ts": "2026-06-16T00:23:52Z", "hours": 3.5289, "text": "See the toggle spells list that you toggled In spell selection screen you can press the spell to see description Remake spiritual roots Remade ui"}, {"post_id": 8409, "ts": "2026-06-13T23:43:00Z", "hours": 5.0458, "text": "Added lightning effect for lingbeng Remade ZhenshanPalmEntity Added a passive spell 威压 Change the stats (Hp, Qi, Age, and Progress) Change spell’s cost and damage Added command to modified players stats Removed stat cap Fixed loot tables Added 轮回真决 Added 定身咒 Added 引雷诀 Added 五雷正法 Added 御风诀 Added 吞天魔功"}, {"post_id": 7205, "ts": "2026-06-12T01:03:44Z", "hours": 2.4225, "text": "Look at what your boy cooked up in the lab!!!"}, {"post_id": 6577, "ts": "2026-06-11T01:41:07Z", "hours": 12.0342, "text": "WOW SO MUCH STUFF (look at the pics!!!)"}]...
|
Title: Immortal Cultivation Mod (修仙) by @m3e660 | Title: Immortal Cultivation Mod (修仙) by @m3e660 | Stardance
Devlogs:
WOW SO MUCH STUFF (look at the pics!!!)
Look at what your boy cooked up in the lab!!!
Added lightning effect for lingbeng Remade ZhenshanPalmEntity Added a passive spell 威压 Change the stats (Hp, Qi, Age, and Progress) Change spell’s cost and damage Added command to modified players stats Removed stat cap Fixed loot tables Added 轮回真决 Added 定身咒 Added 引雷诀 Added 五雷正法 Added 御风诀 Added 吞天魔功
See the toggle spells list that you toggled In spell selection screen you can press the spell to see description Remake spiritual roots Remade ui
Custom combo system (Where you can make your own custom combo system) Add a zhuji level entity (with its own ai) zhuji1 logic when qi low and enemy 15 blocks away use qi gathering when hp low use regeneration when enemy 10 blocks away use fireball when enemy 5 or lower blocks away use lingbeng and punch them, if qi and hp are all 75 percent or higher then can choose to use lingbeng more time before punch when hp low use wind step to run away when enemy 11 block or higher away and hp high, use wind step to chase the enemy Add a jindan level entity (with its own ai) jidan1 logic same spells as zhuji1 but no lingbeng add a zhenshanplam spell inject qi into weapons keybind v to inject qi into any weapons including modded ones cost 1% of max qi after the injecting the amount of qi injected is add to the tooltip of the weapon amount of qi / 10 = the dmg dealt when attack with this weapon after attack use up amount of qi / 10 of the qi in the weapon base dmg of the weapon x 100 = x(the extra qi / 100 ) x 10 = y if the amount of qi in a weapon is bigger then x then weapon -y durability every sec until not overflow Added shield bar at the right of the hotbar Added 护体气 Added 迷尘障 Added 四方界 Added 固石盾 Added tomb1 structure Added ruined_ritual structure
There was more than 4 pictures in the post below so here is the others After use a spell one time +1 proficiency Spell proficiency 入门:after learning the spell get to this level 小成:100 need to get to this level 大成: 500 need to get to this level 圆满:1000 need to get to this level 登峰造极:10000 need to get to this level
Added shield bar at the right of the hotbar Added 护体气 Added 迷尘障 Added 四方界 Added 固石盾 Added tomb1 structure Added ruined_ritual structure When real death occur spawn a corpse of the player containing all the data of the past player Added attribute 怨气 to all zombie and corpse The longer they exist in the world higher the 怨气 attribute (1000 tick is one 怨气) When right click a zombie with a 镇尸符 stop them from moving When right click a corpse the corpse will stand up with the arm straight up like a zombie add exact 镇尸符 sprite on the corpse face and the corpse stop moving Right click them with a empty hand to take the 镇尸符 off 镇魂铃 when right click will heal 5% of the max hp of your zombie a 5 block radius cooldown 2 seconds 引魂锣 when holding will have a red point only visible to the player and when right click on a block your zombie will jump to that block and if punch a entity the zombie will attack the entity The range of the red particle laser is based on the player’s block reach Added 控尸术 Types of zombie and corpse 怨气 = 100; 白僵 怨气 = 500; 黑僵 怨气 = 2,500; 跳僵 怨气 = 12,500; 飞僵 怨气 = 62,500; 游尸 怨气 = 312,500; 伏尸 怨气 = 1,562,500; 不化骨 怨气 = 7,812,500; 旱魃 When right clicking a zombie with blood they can drink it and give +1 怨气 After getting to 1000 怨气 cant consume anymore Shift right click to feed all of blood in the hand Different modes for zombies attack all hostile (in 5 block radius) defensive (attack all mob that attack owner) Added coffin item, shift right click to store a zombie Added 道服 Added a 血晶, crafted by 9 blood, can feed to all zombie and corpse in all levels, each one is +5 Added Curios slots hair, hair accessory, head accessory, neck accessory, inner clothes, cloak, back accessory, waist accessory Moved coffin to back accessory support, including Curios rendering Added blindfold, blindfold2, straw hat, jade pendant, zhenhun bell, and yinhun gong as wearable accessories Added inventory sprites for accessories and fixed missing textures/positioning Made waist tools cycle with V while held/equipped Added jade pendant meditation speed bonus and tooltip Added 道服 chestplate and worked through texture/model binding fixes Added 血晶 from 9 blood, with zombie/corpse feeding support Added custom spawn egg textures where needed Added/updated English and Chinese translations for missing content Added Jindan dimension entry from stat menu Added 金丹 entity in the Jindan world and normal-world player clone Added Jindan breakthrough screen Added particle effects during breakthrough Added shift-right-click 金丹 entity to spend qi and replicate overworld chunks into the Jindan world Reworked spell selection GUI Added spell wheel ordering and remembered toggles Added selected-spell + R cast flow with charging bar Added/updated several spell scaling effects and combo casting behavior Added flying sword weapon/entity logic Added release, recall, control, shoot, ride, and pickup behavior Added qi cost for controlling/shooting Added flying sword FX when shooting Added zombie/corpse grudge progression and ranks Added higher-rank zombie effects like 尸毒, flying, 阴气 area, drought/dry area Added 鼎 forging GUI with temperature bar, material slots, 玉简 slot, result slot, progress bar, and start button Added forging recipes through 玉简, including 飞剑玉简 and 精铁刀玉简 Added mold items: 剑胚, 刀胚, 枪胚, 武器胚 Added weapon materials Added material purity system and tooltip display Added forging temperature/quality logic, average temp/purity tracking, and failure still producing a mold Added tempering by dropping mold into water, with smoke particles Added 灵火 support from Ignite Flare and normal fire support Added blockgen fixes and custom geo block rendering fixes Added forging system: 玉简, materials, temperature GUI, molds, quality/purity/tooltips Added new crops/items like 糯米 seed/plant, 糯米粥, 墨斗线, 桃木剑, 铜钱剑
New NPC Update The NPC system has been expanded into a full cultivation-style character system. NPCs now have random names, gender, identity, cultivation realm, attributes, spiritual roots, methods, spells, personality, inventory, relationship values, and persistent memory-style data. NPCs can now behave differently depending on personality, identity and relationship with the player. They can fight, flee, use spells, heal, trade, give quests, spar, and interact through a new dialogue screen. (PS the gui shown in the pic is only temporay) Major additions include: Talk, Interact, Trade, Quest, Teach/Learn, Inventory, About, Spar, Invite to Sect, Master/Disciple, and Dao Companion. Relationship stats: friendship, trust, affection, hatred Social actions like praise, joke, insult, threaten, and gifting NPCs can follow, stay, join sects, become master/disciple, or become Dao Companion if requirements are met. New NPC identities were added, with identity-based starting items and loot: 散修 剑修 刀修 魔修 器修 尸修 世家子弟 皇族 通缉犯 体修
Devlog #9 Ok so after some ratings and feedbacks I have decided to write better devlogs with more explaining and thoughts. Update: NPC I was working on npc on the last update and decided to further more finish this feature with adding a nice feature of … IDENTITY All Npc will all spawn with a random identity 散修 - Rogue Cultivator 剑修 - Sword Cultivator 刀修 - Saber Cultivator 魔修 - Demonic Cultivator 器修 - Artifact Cultivator 尸修 - Corpse Cultivator 世家子弟 - Noble Clan Disciple 皇族 - Royalty 通缉犯 - Wanted Criminal 体修 - Body Cultivator (Yes I actually added translation for chinese things now) This identity feature not only completes the Npc’s personality but for each identity they have there own special items (which really helps my mod’s survivability, adding a way to obtain items now) They also have their own personal dialogue based on their identity. Jindan Added a new breakthrough screen for zhuji to jindan, and a new dimension for your own personal jindan (like a new world you can channel 2000 qi in the center and you can build chunks in your own world) (see pics) Plans: I was going to further improve the Npcs but after adding a hole a lot of new items for each identity, I realized that I have a other system and features I didnt make (pill making system and more higher level spells)
Devlog #10 Ok so I have work on more than what is showed in the video but this feature is very big so the smaller thing can be talked about in the later devlog Restriction Enchantment Thingy Update 禁制 replaces normal enchantment levels for weapons and artifacts. Every artifact can contain multiple Restriction Layers: 1重禁制 2重禁制 3重禁制 …… 36重禁制 72重禁制 Each successfully engraved layer improves the weapon. Higher layers become progressively harder, more expensive, and more dangerous to refine. After reaching 72重禁制, the weapon can evolve into the next level Rules Controls Click a row to select its node. Click to the left or right of the bead, or use the < and > buttons, to move it. Use W/S or the Up/Down Arrow keys to change the selected node. Use A/D or the Left/Right Arrow keys to move the selected bead. Each bead has a Qi value ranging from 0 to 6 . The golden diamond shows the target value. When every node matches its target value at the same time, the formation is completed and all selected Restrictions are engraved onto the artifact. Moving one bead may also affect linked nodes. Nodes Types Normal Node A standard node that can be moved directly. The node turns gold when its value matches its target. Forward Golden Formation Line Linked beads move in the same direction. For example, moving one bead to the right also moves the connected bead to the right. Reversed Cyan Formation Line A cyan formation line marked with a “−” symbol. Linked beads move in opposite directions. For example, moving one bead to the right moves the connected bead to the left. Locked Node A gray node that cannot be moved directly. The player must move connected nodes to push it into the correct position. Locked nodes begin appearing from a total of 46 Restriction layers . Unstable Node A pulsating red-jade bead. It moves automatically after its displayed action interval and may also affect linked nodes. Unstable nodes begin appearing from Restriction layer 55 . Hidden Node Its target value is displayed as “?” The player must determine the correct target by observing the formation’s behavior or by using a hint. Hidden targets and move limits begin appearing from Restriction layer 73 .
Devlog #11 Sorry for the quality of the video, the quality had to be sacrifice for the length I have formed a habit of writing random thoughts I had, so here is more: wow I kinda hate the 10 hours devlog maybe it is because I am working on a big update orrrr I am just too lazy Revamp Update (plus other stuff (it is more of a random update)): More quest for all of the identity Giving a use for the jindan quality Added 烬火心燎 (mental attack kinda) Added 碎轨星陨 (big boom) Added 洞天借灵 (restore alot of qi) Added 时序迟流 (time slow zone) Added a soul system (when npc or player die there are a soul) Added 炼神术 (increase thoughts stat) Added DunWu Stele (can be used to crave spells into it so for spells like 炼神术 that have no spell item you can learn it like this) Added 噬魂幡 (cool stuff too much so just watch the video) Added 怨魂瓶 (used to store soul) New identity 邪修 功法 improvement (when use qi there is new particle effects) Etc (gui update and others) Config There is a new config button: Auto inject qi into weapon Outside qi (when in new battle system when swing your weapon it shoot out qi slash breaking blocks and killing enemies) New battle system Jindan creative flight New Puzzle Update 灵枢算盘 (the minigame to crave 禁制) it is use to upgrade weapons and eventually evolving it 灵脉六角阵 (the minigame that the player encounters when breaking through jindan) 灵气轨迹 (the minigame when learning spells) 雷劫 (Heavenly Tribulation for jindan) Strike 1 — A thin white-blue bolt 50 dmg Strike 2 — Two branching bolts 100 dmg Strike 3 — Three quick lightning 50 each hit Strike 4 — A thicker blue-white bolt 100 and take 30 dmg per sec for 5 sec Strike 5 — Lightning strikes the ground in eight positions around the player 300 dmg Strike 6 — Several smaller bolts repeatedly strike the player for three seconds 30 each Strike 7 — A massive branching bolt 400 dmg Strike 8 — Purple heavenly lightning 50 dmg per sec for 5 sec Strike 9 — Four bolts strike the north, south, east, and west sides of the player, followed by one direct central strike 400 dmg Strike 10 — A continuous pillar of lightning 100 per 3 sec Strike 11 — Golden lightning begins appearing inside the storm, six golden-white bolts rapidly strike around and directly onto the player 80 each Strike 12 — A giant bolt splits into twelve branches before all branches converge on the player’s position 300 dmg Strike 13 — Lightning repeatedly strikes the player 50 each Strike 14 — A ring of lightning forms in the clouds and releases a rain of dozens of smaller lightning bolts 50 per 3 sec Strike 15 — Nine rapid strikes hit the player in succession 2/4/8/16/32/64/128/256/512 Strike 16 — Every lightning arc inside the clouds gathers into one enormous golden-white tribulation bolt 1000 dmg Easy Mode Acheivement “You Are Really Bad” Get this when you die 10 times in 20 mins Get a hat curio called “Noob Hat” All puzzle are easier by a level
Devlog #12 A bit in a rush so no video this time, but i added pics so it should be fine. Battle System 战斗状态/Battle Mode: activates when hitting something, or dmg from players, cultivators, or mobs counts too, normally lasts 15 seconds Manual mode: press Y to lock combat mode on until pressed again it can be disabled in settings Normal attacks (left click just normal attack) Heavy attacks (hold attack for 0.5 seconds, then release, normal heavy attacks deal 120% weapon dmg) Blocking (hold left and right click together you dont take dmg, but the weapon loses durability and the blocked dmg harms posture) 架势/Posture: maximum posture is 100 + Physical Attack × 100 + Max HP ÷ 2. It regenerates by 1% each second 破势/Zero Posture: at zero posture, the player is stunned for 1.5 seconds, cannot block, takes 25% more dmg, and loses their current spell charge 外放灵气/External qi: qi injected weapons can release long, straight qi slashes, with the dmg, width, and range scaling with injected qi amount Recent Weapons 精铁枪: A 14 dmg spear normal attacks is like normal, while heavy attacks use a thrust animation and forms a qi cone shaped thingy 铁骨扇: Shift right click switches forms: closed form deals 3 dmg and uses a cone heavy attack and open form deals 5 dmg and uses slash attacks 拂尘: Deals 7 dmg normal attacks is normal too, but its heavy attack spins five times in front of the player, damaging everything within 3 blocks. Right click binds a physically weaker target within 5 blocks for 3 seconds, with a 10 second cooldown 飞刀: Deals 4 dmg and you can stack 5 more all together into one. Right click throws normally and heavy attacks throw a faster knife that can break five blocks before exploding. 飞针 and 袖箭: 飞针 deals 4 dmg, has 1,000 durability, and consumes 10 durability per shot. 袖箭 can be held or equipped in a back accessory slot. Normal attacks fire ordinary needles but heavy attacks fire qi powered explosive needles Etc Added more English Remake some gui Remake some models
Devlog #13 Oops, I got the 8 hours warning and I forgot about it and not I have 12 hours…. sigh. So this update I mainly update the magic ritual mod I have before, and before you ask yes this is the right project, I merge the magic ritual mod with this mod and then revamped the whole thing. This devlog is kinda short because I am getting lazy. Magic Ritual Combo system The Ritual Dagger is your primary tool for creating and managing magic rituals. Right-click with the dagger to open the Magic Circle Selection screen, where you can choose a magic circle type to place at your feet. Shift + Right-click to open the Radius Selection screen, where you can place a Magic Center Block with a chosen radius Attack Red - Grants Strength I Defense Blue - Grants Resistance I Regeneration Green - Grants Regeneration I There are certain pattern for special effect after putting it in its pattern you can punch the center with the dagger and the new magic center is formed Combo visuals and glyph behavior Basic center have one image pattern Combo center have two image pattern If glyph mode is turned off, there is an entering animation
Devlog #13 Sooo, did a few entities and most important zhenpan and flags for the magic circle. Zhenpan When empty shift right click to store a magic center When full shift right click to place a magic center back down When store magic center the radius of the magic center is changed to 5 if higher When right click summon a temp magic center of the radius 5 that appear for 20 sec The cost is calculated based on the spirit stones in inventory first then player’s qi Flags Now in the magic center there is a new tab with a gui (in the pics) where you can put flags, they modified the effect of your magic circle. But each newly added flag will increase the cost of the magic center by 1.3x, so the cost can reach to 2693457 qi when using a maxed out zhenpan. Formation Flag Effects Blank Formation Flag — No active effect, used to forge specialized flags Duration Flag — Adds 3 seconds to a temporary Magic Center’s lifetime per flag Amplifier Flag — Adds 1 extra attack whenever an formation triggers Spirit Gathering Flag — Reduces formation fuel/energy consumption by 25% per flag, it does not add the normal ×1.5 flag cost Swift Formation Flag — Makes normal formation effects trigger 30% faster per flag and increases fuel consumption by 30% Qi Return Flag — Restores 10 Qi per flag when a player kills an enemy inside the formation
Devlog #14 Hmmm why does the picture devlog get more view than the videos, let this be a test then Added: Tutorial System Qi Sensing Thingy Remake Spatial Pouch and like 20 new spells and 4 new method Remake Spatial Pouch Replace the whole backpack like spatial pouch system to a pocket like dimension (in the in the picture) you can place all functionable block and still use it by left clicking it and double click to remove it. (oh and redstone work :) i know there is people that can do smth op with redstone) Tutorial System Full tutorial system that guide you through everything, because so much people said there is a big learning curve, so boom :) Qi Sensing Thingy You can sense entities, items and qi ahhhhh there is not too much stuff or maybe i am too lazy…. definitely not that trust
Devlog #15 Uhm a lot of update and unfinished things so it is more of a sneak peek so, there not going to be a long devlog, maybe i am just lazy :). Cosmic Void New dimension that is like space use for mostly travel and battles Talismans A lot I added a lot but it is for later show you guys some pics tho
Devlog #16 Did some structures, and there is the talisman data like I said Talismans Tier 1 清尘符 — Dust-Cleansing: Extinguishes fire and removes blindness and darkness 微光符 — Dim-Light: Creates light ball for 2–3 minutes, hold while aiming at a block to anchor it, you can use water extinguishes it 敛声符 — Sound-Gathering: For 25 seconds, nearby mobs lose you as their target when more than 2.5 blocks away 火球符 — Fireball: Fires 8 fireballs. Each deals 10 damage in a 2.4 block explosion 风刃符 — Wind-Blade: Fires 3 wind blades dealing 11 damage each and pushing targets backward Tier 2 星火符 — Sparkfire: Fires 5 flames dealing 30 damage each and igniting for 4 seconds 薄金护符 — Thin-Gold Protection: Give shield worth 200 + 1% maximum HP for 15 seconds 缠丝困符 — Spirit-Silk Binding: Fires 6 strands dealing 1 damage each. Strands stack slowness for 5 seconds and 4+ strands nearly immobilize the target 短途神行符 — Short-Journey Divine-Step: Give speed VIII and jump boost III for 30 seconds 传音符 — Voice-Transmission: Sends a written message to another player with in 100 blocks in the same dimension 修复符 — Repair: Repairs the damaged item held in the opposite hand Tier 3 避邪安魂符 — Evil-Warding Soul-Calming: Evil ward for 5 minutes, clears and prevents darkness/nausea, and restores 1% maximum Thoughts each second for 3 minutes 镇扰符 — Disturbance-Suppressing: Hostile mobs within a certain range get slowness II 爆风符 — Blast-Wind: Produces a blast dealing 50 damage, applying daze, and deflecting projectiles 火狱焚邪符 — Evil-Burning Fire-Prison: Creates a 10-block explosion, deals 50 area damage 五雷小伐符 — Lesser Five-Thunder: Deals 40 damage and give slowness III for 1.75 seconds 标记符 — Marking: Permanently marks a entity up to 300 blocks away for owner,and marked mobs are also prevented from naturally despawning 遁空符 — Void-Escape: Teleports in the direction you are looking, normally up to 20 blocks. Repeated uses within 5 seconds lower the maximum to 17, 14, then 12 blocks 化兵符 — Weapon-Manifestation: Creates an owner only temporary sword lasting 25 seconds Tier 4 金光护体符 — Golden-Light Body Protection: Adds a shield worth 600 + 1% maximum HP for 25 seconds 封灵符 — Spirit-Sealing: Seals everyone’s qi within 3 blocks of impact, interrupts casting 破障开山符 — Barrier-Breaking Mountain-Opening: Creates a massive 20-block explosion dealing 500 area damage Tier 5 千里传讯符 — Thousand-Li Message: Long range version of the Voice Transmission Talisman, but it is 1,000 blocks in the same dimension Tier 6 玄焰焚界符 — World-Scorching Black Flame: Creates a black-flame domain that grows from a 5 block radius and deals 100 damage per second. It destroys terrain, consumes dropped items and projectiles, and grows by consuming matter and victims, potentially reaching 48 blocks 五岳辟厄符 — Five-Mountains Calamity-Warding: Grants luck for 10 minutes and stacks three times: +15, then +7, then +3 Ancient 禁空符 — Forbidden-Air: Places a field 24-block radius lasts 8 seconds. It suppresses jumping and flight, and pulls flyingentities downward
Devlog #17 MORE STRUCTURES i got into the phase of building so more structres!
Devlog #18 Working on flying boat or valkyrie skies like things, I dont think that is copyright as it is not the main part of my mod, if it is tell me in the comments thanks Flying Boats Four core tiers control maximum capture size: Low: 100×100×100 Medium: 200×200×200 High: 400×400×400 Sect: 800×800×800 Existing ships can still be minimized into an item and placed again later The lingzhou core GUI is where you manage the ship. It shows the ship’s status, tier, size, fuel/灵气, current pilot, permissions, settings, movement mode, anchor controls, shutdown, and storage Fuel use is based on how many blocks the ship actually has and what it is doing. Hovering uses fuel, while an anchored ship does not The ship helm is used to pilot the lingzhou. While controlling it, the mouse wheel can be used to change the ship’s speed Autopilot lets you enter destination coordinates and have the ship travel toward them automatically Players and other entities move together with the ship. You can walk around the deck, jump, climb stairs, and move around normally while the ship is flying If part of the ship gets disconnected, that section is no longer supported by the lingzhou and falls back into the world as normal blocks Turning off the lingzhou core removes the ship’s magical lift. The ship keeps whatever momentum it already had and begins falling under gravity Etc Fix system prices Fix textures Fix names of items Added JEI compatibility for 鼎 forging Added recipes for a lot of weapons Removed combo system Added a fox beast
Devlog #19 Some mobs, yea that is really it
Devlog #20 School is starting and college stuff is like piling on so my brain is slowing down, so there isnt much stuff i did when you compare it to the hours in this devlog. Mirror Thingy It is like a shield can absorb some dmg Straw Doll Like a totem of undying Jei Compatibility You can see the forging recipes in Jei now!
Devlog #21 Added whip physics Added new item mechinacs Added straw doll Added a luck system
Devlog #22 Not much like I said school started, it was more planning and stuff, revised npc battle logic
Devlog #23 REVISE MOSTLY OF THE VFX AND ADD ALOTTTTT OF DRIP
Devlog #24 121 NEW SPELL ICONSSS MY SOULLLSLLSLSLLS I pick the best 20 icon i love
Devlog #25 Add a lot of new weapons A lot of new fire And more clothes
Devlog #26 I going to improve the overall survivability of the mod: So there is going to be like more guides book in coming And more item that were creative only now actually getting ways to get the items
Devlog #27 Improve overall guidance and improve existing model
Devlog #28 Added 8 guide books for different part of the mod Added new bear model
Devlog #29 Remake all the magic circle texture and automated it (tool here https://m3e66.github.io/xiuxian-circle-generator/ ) Optimize all the code Added new body types 赤炎灵体 — Crimson Flame Body +25% fire damage; burning enemies take 10% extra damage from you 玄冰灵体 — Profound Ice Body +25% ice damage; attacks build Frost, briefly freezing enemies after 5 stacks 紫霄雷体 — Violet Thunder Body +25% lightning damage; every fifth lightning attack summons an extra thunderbolt dealing 50% damage 青木长生体 — Evergreen Longevity Body +15% maximum HP; +25% natural HP regeneration; +10% healing effectiveness 厚土玄体 — Profound Earth Body +20% armor; standing still for 3s grants an additional 10% damage reduction until moving 庚金剑体 — Geng Metal Sword Body +20% sword damage; +10% sword attack speed; sword strikes ignore 10% armor 沧海灵体 — Vast Sea Body +20% water damage; +20% maximum Qi; water spells cost 15% less Qi 逐风灵体 — Windchaser Body +20% movement speed; +15% attack speed; dodging grants +10% damage for 3s 先天道体 — Innate Dao Body +15% cultivation gain; all spells cost 10% less Qi; +5% all elemental damage 无垢灵体 — Immaculate Spirit Body +30% negative-effect resistance; debuffs last 25% less time; +15% healing received 九窍玲珑体 — Nine-Orifice Exquisite Body +25% Qi regeneration; +10% maximum Qi; spell cooldowns reduced by 10% 万毒之体 — Myriad Poison Body Immune to poison; poison attacks deal +25% damage; poisoned enemies restore 1% max Qi when killed 血煞魔体 — Blood Fiend Body +20% melee damage; heal for 5% of melee damage dealt; healing from pills reduced by 20% 不灭金身 — Imperishable Golden Body +15% maximum HP; +15% damage reduction; when HP falls below 20%, gain 30% damage reduction for 5s 吞灵之体 — Spirit-Devouring Body Killing an enemy restores 5% max Qi; attacks against shields and Qi barriers deal +20% damage 荒古圣体 — Ancient Desolate Sacred Body +25% maximum HP; +20% physical damage; +15% armor; Qi regeneration reduced by 15% 太阴神体 — Supreme Yin Divine Body +30% dark and ice damage; +20% Qi regeneration at night; sunlight reduces Qi regeneration by 15% 太阳神体 — Solar Divine Body +30% fire and light damage; immune to burning; +20% HP regeneration in sunlight
Devlog #30 Remaking the whole life sim system adding new event (making them actually have somewhat of a story) added new battle system and more small thing to better help the experience And ton of bugs
Devlog #31 Added BLAST QI, where you can BLAST YOUR QI in your enemies face and be cool And fix the flying sword thing And fix a whole a lot of fix
Devlog #32 Added new effect in domain like abilities: Lilies, ice, big space warp (don’t yell at this devlog, I wrote it on the phone)
Devlog #33** A shentong ability:湮灭未尽之人 and a dummy for testing purposes A lot of bug fixing and small thing like better formatting of the gui etc
Ships:
Getting Started The first steps of cultivation. Enlightenment Pill Use an Enlightenment Pill to step from mortal life into Qi Refining. The stat menu shows qi, realm, max health, max age, luck, moral, soul, thoughts, spirit roots, and cultivation progress. Spells Fireball (Lianqi Early, Fire, 10 Qi) Shoots a fireball that deals damage and ignites targets. Lingbeng (Lianqi Late, Thunder, 50 Qi) Enter a breaking-force state. Punch a block or entity to release an explosion. Recasting stacks the explosion radius. Regeneration (Lianqi Middle, Wood, 20 Qi) Restores health with a short healing effect. Beam (Lianqi Early, Light, 30 Qi) Allows you to sense nearby entities. Earth Escape (Lianqi Late, Earth) Sink underground. Move faster while underground. Consumes Qi over time until you surface. Cleanse (Lianqi Early, Water, 10 Qi) Removes harmful effects from yourself. Qi Gathering (Lianqi Early, Wind, 0 Qi) Greatly increases Qi regeneration. You cannot attack or block while active. Damage taken is tripled. Ignite Flare (Lianqi Early, Fire, 10 Qi) Fires a straight flare. Ignites the block it hits. Spirit Sight (Lianqi Early, Light, 5 Qi/sec) Grants night vision while active. Zhenshan Palm (Foundation Establishment Middle, Earth, 130 Qi) Releases a giant hand-shaped earth wave for 3 seconds. Destroys blocks touched by the palm. Light Ball (Foundation Establishment Late, Light, 30 Qi summon, 10 Qi per shot) Summons 6 light balls in a hexagon behind you. Can stack up to 3 rings. Punch to fire one ball. Shift-punch to fire all balls. Each shot deals 50 damage. Each shot can break through up to 24 blocks.
This update adds a huge amount of new content! You can now explore newly added structures, use new spells, control and evolve zombies through the new 怨气 and 控尸 systems, and wear new design accessories. The 金丹 system has also been remade with its own pocket dimension, breakthrough system, and new mechanics. Spell casting has been reworked, flying swords are now fully usable, and a complete forging system lets you craft weapons using materials, molds, purity, and temperature. There are also plenty of new items, crops, effects, and fixes to improve the overall experience!
I want my VR ahaahahahahah plssss Nothing much to say here just look at the images and video in the previous logs
I WANT MY POLAROID GO GEN 3 PLSSSSS I AM JUST A TINY BIT AWAY...
|
1793066008.5703037
|
1793152408.5703037
|
|
47573
|
HabitiSync by @Yellow_Cat | Stardance
|
Yellow_Cat
|
1
|
18.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T16:53:34Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "HabitiSync is an unofficial app for Zepp OS that lets you interact with Habitica directly through your watch using the API Habitica provides to each user. HabitiSync has been my first project for my watch. Ever since I bought it, I thought I should make my own app, yet I never started it until I started HabitiSync. To create this app i had to learn how to use JavaScript to code a functional UI in my watch. I decided to make HabitiSync because I have used Habitica for a long time, and I decided it would save me time to use my watch to score my tasks once I completed them, instead of going through my phone. Once I started developing HabitiSync, I ran into many problems, but was able to solve them all without using AI at all, as AI tended not to understand fully how to make this kind of apps (although it helped me understand my own code and fix some small or repetitive bugs). How to try it: You will need a compatible watch (see README for compatible watches list), and go to the app store inside the Zepp App, look for HabitiSync (app ID: 1124182) and install it. Then, configure your account in the settings app, and open your watch to see the icon. OR You can watch a showcase video about how this app works entering this link (also found in README): https://www.dropbox.com/scl/fi/ksukgqrjfey43xg7uo7zt/HabitiSync-demo.mp4?rlkey=p4o0ug2u98sogcmch0iulq5r7&st=d3psn36v&dl=0", "repo": "https://github.com/YellowCat-Code/HabitiSync", "demo": "https://www.dropbox.com/scl/fi/ksukgqrjfey43xg7uo7zt/HabitiSync-demo.mp4?rlkey=p4o0ug2u98sogcmch0iulq5r7&st=d3psn36v&dl=0"}]...
|
[{"post_id": 67495, "ts": "202 [{"post_id": 67495, "ts": "2026-09-13T16:39:28Z", "hours": 0.9961, "text": "Finally, the app has been relased into the app store. To download it, you have to go to the app store inside the Zepp App, look for HabitiSync, and install it (app id: 1124182). Then, configure your account into the settings app, and open your watch to see the icon. In this last update, I updated the Readme file to also showcase a video for those who don’t own a compatible watch."}, {"post_id": 59566, "ts": "2026-09-01T13:41:06Z", "hours": 0.6, "text": "After the app had been rejected from the Zepp app store due to the previous name was trade marketed, I decided to change the name into HabitiSync. I expect the app to be released in the official app store in the next 2 weeks!"}, {"post_id": 51086, "ts": "2026-08-20T16:07:04Z", "hours": 2.8989, "text": "The app is now on GitHub! Now you can also try it yourself by using the watch app. It is also being reviewed to be published onto the official app store, so it will be accessible to everyone for free. Changes: I have changed the previous name (Zeppitica) to HabitiZepp to better comply with Habitica’s usage guidelines. I have added a reload function to load the page again if changes have been made by just pressing the banner for more than 700 ms, and I have better adjusted the UI, as well as fixing some minor bugs and permissions with the device."}, {"post_id": 50306, "ts": "2026-08-19T13:56:42Z", "hours": 7.1342, "text": "After fixing all previous bugs related to network issues and getting familiarized with JavaScript and Zepp OS development, I have started working on the UI, adding more colors to it and making more buttons functional, as well as adding new security features such as not having to use the user’s own API, and instead logging them in. Right now, I am taking suggestions on how to improve the UI design, or in adding new functionalities, so feel free to comment your ideas if you have some👍."}, {"post_id": 48450, "ts": "2026-08-16T20:01:28Z", "hours": 6.2189, "text": "These last few days I have been figuring out many of the problems I had while writing in JavaScript for watches with Zepp OS. As of now, I have resolved most of them, but I still have to design the UI and organize the answers from the Habitica API."}]...
|
Title: HabitiSync by @Yellow_Cat | Stardance
Devl Title: HabitiSync by @Yellow_Cat | Stardance
Devlogs:
These last few days I have been figuring out many of the problems I had while writing in JavaScript for watches with Zepp OS. As of now, I have resolved most of them, but I still have to design the UI and organize the answers from the Habitica API.
After fixing all previous bugs related to network issues and getting familiarized with JavaScript and Zepp OS development, I have started working on the UI, adding more colors to it and making more buttons functional, as well as adding new security features such as not having to use the user’s own API, and instead logging them in. Right now, I am taking suggestions on how to improve the UI design, or in adding new functionalities, so feel free to comment your ideas if you have some👍.
The app is now on GitHub! Now you can also try it yourself by using the watch app. It is also being reviewed to be published onto the official app store, so it will be accessible to everyone for free. Changes: I have changed the previous name (Zeppitica) to HabitiZepp to better comply with Habitica’s usage guidelines. I have added a reload function to load the page again if changes have been made by just pressing the banner for more than 700 ms, and I have better adjusted the UI, as well as fixing some minor bugs and permissions with the device.
After the app had been rejected from the Zepp app store due to the previous name was trade marketed, I decided to change the name into HabitiSync. I expect the app to be released in the official app store in the next 2 weeks!
Finally, the app has been relased into the app store. To download it, you have to go to the app store inside the Zepp App, look for HabitiSync, and install it (app id: 1124182). Then, configure your account into the settings app, and open your watch to see the icon. In this last update, I updated the Readme file to also showcase a video for those who don’t own a compatible watch.
Ships:
HabitiSync is an unofficial app for Zepp OS that lets you interact with Habitica directly through your watch using the API Habitica provides to each user. HabitiSync has been my first project for my watch. Ever since I bought it, I thought I should make my own app, yet I never started it until I started HabitiSync. To create this app i had to learn how to use JavaScript to code a functional UI in my watch. I decided to make HabitiSync because I have used Habitica for a long time, and I decided it would save me time to use my watch to score my tasks once I completed them, instead of going through my phone. Once I started developing HabitiSync, I ran into many problems, but was able to solve them all without using AI at all, as AI tended not to understand fully how to make this kind of apps (although it helped me understand my own code and fix some small or repetitive bugs). How to try it: You will need a compatible watch (see README for compatible watches list), and go to the app store inside the Zepp App, look for HabitiSync (app ID: 1124182) and install it. Then, configure your account in the settings app, and open your watch to see the icon. OR You can watch a showcase video about how this app works entering this link (also found in README): https://www.dropbox.com/scl/fi/ksukgqrjfey43xg7uo7zt/HabitiSync-demo.mp4?rlkey=p4o0ug2u98sogcmch0iulq5r7&st=d3psn36v&dl=0...
|
1793004534.8313212
|
1793090934.8313212
|
|
57087
|
IMPROVED NUMBER GUESSING GAME by @Dhanush_Mundra | IMPROVED NUMBER GUESSING GAME by @Dhanush_Mundra | Stardance...
|
Dhanush_Mundra
|
1
|
2.0
|
6
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T16:39:18Z", "hours": 2.0, "multiplier": 3.52, "payout": 6, "blessing": "neutral", "text": "ok ok ok. so I have finally made my improved version of number guessing game. I earlier shipped it but many people told me what I could do more so I added the system of hint in which the user can take hint if they want to after a certain number of chances done in a particular level. I also modified the GUI which was last time the main point of the people. the challenging part was of the logic and to make the GUI better with the use of html and css. It was a great experience to do work with different languages and make a single project. I am looking forward to do more changes in this project but this is my first project and I am very proud of this. also I was not able to give it enough time because I am working. on other bigger projects as you can see on my stardance account. I am hoping you to rate as good as you can because this project is very close to my heart and as a 13 year old I feel that I am going on the right track and doing great. so now looking for your support for my hardwork THANK YOU FOR READING AND VIEWING MY PROJECT!!!", "repo": "https://github.com/mundradhanush-lgtm/NUMBER_GUESSING_GAME", "demo": "https://mundradhanush-lgtm.github.io/NUMBER_GUESSING_GAME/"}]...
|
[{"post_id": 67303, "ts": "202 [{"post_id": 67303, "ts": "2026-09-13T11:41:02Z", "hours": 0.2669, "text": "ok so I have added the gui and my project is ready to be uploaded. I made the gui much much better and much more easy to use."}, {"post_id": 59532, "ts": "2026-09-01T12:20:57Z", "hours": 1.5706, "text": "okay so I have already made this project (you can just visit my older NUMBER GUESSING GAME PROJECT by going on my profile and projects) but the thing I am working on is the topic of hint and changing th GUI and if possible the feature of public leaderboard."}]...
|
Title: IMPROVED NUMBER GUESSING GAME by @Dhanush_M Title: IMPROVED NUMBER GUESSING GAME by @Dhanush_Mundra | Stardance
Devlogs:
okay so I have already made this project (you can just visit my older NUMBER GUESSING GAME PROJECT by going on my profile and projects) but the thing I am working on is the topic of hint and changing th GUI and if possible the feature of public leaderboard.
ok so I have added the gui and my project is ready to be uploaded. I made the gui much much better and much more easy to use.
Ships:
ok ok ok. so I have finally made my improved version of number guessing game. I earlier shipped it but many people told me what I could do more so I added the system of hint in which the user can take hint if they want to after a certain number of chances done in a particular level. I also modified the GUI which was last time the main point of the people. the challenging part was of the logic and to make the GUI better with the use of html and css. It was a great experience to do work with different languages and make a single project. I am looking forward to do more changes in this project but this is my first project and I am very proud of this. also I was not able to give it enough time because I am working. on other bigger projects as you can see on my stardance account. I am hoping you to rate as good as you can because this project is very close to my heart and as a 13 year old I feel that I am going on the right track and doing great. so now looking for your support for my hardwork THANK YOU FOR READING AND VIEWING MY PROJECT!!!...
|
1793004930.7551985
|
1793091330.7551985
|
|
61654
|
Gothic dungeon game by @adbhutkunder834 | Stardanc Gothic dungeon game by @adbhutkunder834 | Stardance...
|
adbhutkunder834
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T16:30:35Z", "hours": 0.0, "multiplier": 1.01, "payout": 0, "blessing": "neutral", "text": "I coded a fully interactive text-based adventure game from scratch using html and CSS and JavaScript . the game features a custom dark gothic CSS background and uses JavaScript functions to dynamically change the story and button choices (like opening a chest or run0 without reloading the page. MY TIME TRACKING PROOF my hackatime extension bugged out and missed my main session but I recorded my complete actual coding session of 1hr 52 minutes using lapse. **MY LAPSE VIDEO PROOF: https://lapse.hackclub.com/timelapse/handoff/hj0eKrzKf54Y", "repo": "https://github.com/adbhutkunder834-collab/gothic-dungen-game", "demo": "https://adbhutkunder834-collab.github.io/gothic-dungen-game/game2.html"}]...
|
[{"post_id": 67471, "ts": "202 [{"post_id": 67471, "ts": "2026-09-13T16:09:45Z", "hours": 0.2547, "text": "gothic dungeon game"}]...
|
Title: Gothic dungeon game by @adbhutkunder834 | S Title: Gothic dungeon game by @adbhutkunder834 | Stardance
Devlogs:
gothic dungeon game
Ships:
I coded a fully interactive text-based adventure game from scratch using html and CSS and JavaScript . the game features a custom dark gothic CSS background and uses JavaScript functions to dynamically change the story and button choices (like opening a chest or run0 without reloading the page. MY TIME TRACKING PROOF my hackatime extension bugged out and missed my main session but I recorded my complete actual coding session of 1hr 52 minutes using lapse. **MY LAPSE VIDEO PROOF: https://lapse.hackclub.com/timelapse/handoff/hj0eKrzKf54Y...
|
1793058448.8403265
|
1793144848.8403265
|
|
27134
|
VEX App by @boberto | Stardance
|
boberto
|
1
|
37.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T16:28:41Z", "hours": 37.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hey guys, soo since the dashboard invite link reroutes users to /onboarding, it doesnt return a code 200 “ok”. So please use this link instead: https://stlvexapp.guanine.org/join/b93d07e1-b1a8-467e-81fb-d3f36dcff0b7 But anyways, the point of this project wasn’t to build something beautiful, fun, or exciting. Compared to the other things people are building (I saw some awesome spider bots and rocket ship CADs), my project is pretty lame. Why did I build it? Well, around 4 months ago, I noticed some major bottlenecks in my school’s Robotics organization. Our calendar was on a google doc with only a single page, fragmented communications, field elements getting lost, first year members constantly asking for support, and nobody on any of the 6 teams had any idea what they were supposed to do Therefore, I set out to build a solution and I learned SO MUCH along the way! My VEX internal dashboard has taught me so much about backend design such as: rate-limiting throttling oAuth flows SQL databases & normalization database annotations monorepos prefetching & async fetching image preloading GIT!!!!! It was such an amazing journey and it has helped me build a portfolio of projects that actually show that I CAN engineer real apps that hold up against heavy user traffic. (AI WILL NEVER REPLACE ME) The result: I’ve used this app as a my FRONTIER project is SO MANY applications to organizer positions at JamHacks, IgnitionHacks, EurekaHacks, etc… And… Now I work as a backend engineer for THREE HACKATHONS!!! I’m so happy and I know that this may not be the most EXCITING of projects but if you could please support me and my future endeavours thanks :)", "repo": "https://github.com/RandomPerson5571/VEXApp", "demo": "https://stlvexapp.guanine.org"}]...
|
[{"post_id": 66166, "ts": "202 [{"post_id": 66166, "ts": "2026-09-11T20:20:18Z", "hours": 17.1692, "text": "Around four months ago, I noticed my school’s robotics organization had a lot of small problems adding up Our calendar was a one-page Google Doc Communication was scattered Field elements kept getting lost New members constantly needed help People across our 6 teams often had no idea what they were supposed to be doing So a friend and I started building a centralized management portal. A few technical decisions I made Turborepo for a monorepo, so I didn’t have to duplicate backend logic across multiple repos Supabase + Prisma for auth and database accessZuplo for API rate limiting RoboEvents API for competition data GitHub + Fusion 360 webhooks for Discord notifications Render + UptimeRobot to keep hosting cheap and reduce cold starts It was a long and difficult road to get here, as I had to learn so many new tools and resolve so many different problems. But now the portal has officially shipped to our robotics organization, with 200+ members across 6 teams!! Pretty crazy considering it started because our Google Doc calendar sucked."}, {"post_id": 23242, "ts": "2026-07-06T02:20:35Z", "hours": 0.7717, "text": "Feats: Code cleanup Debugging App is now production-ready."}, {"post_id": 22585, "ts": "2026-07-05T03:36:59Z", "hours": 0.8592, "text": "Feats: general testing planning 3d renders"}, {"post_id": 20988, "ts": "2026-07-02T18:45:08Z", "hours": 3.6522, "text": "Feats: added github integration added team repos fixed some dom hydration errors added push notifs for the discord bot"}, {"post_id": 19378, "ts": "2026-06-30T17:50:29Z", "hours": 1.3994, "text": "Feats: latency issues a lot of code refactoring pushed the app to prod"}, {"post_id": 18555, "ts": "2026-06-29T19:06:07Z", "hours": 1.0864, "text": "Feats: added documentation pages added markdown support added folder creation basically fully CRUD for documentation and folders added discord slash commands TODOs: add more discord slash commands add notificaitons add external integrations (github, fusion360, etc.)"}, {"post_id": 18066, "ts": "2026-06-29T01:45:38Z", "hours": 2.2067, "text": "Feats: implemented inventory items (signout, creation, viewing, etc.) implemented dashboard widgets implemented task creations implemented documentation view implemented inline edits for tasks implemented documentation + folders for proper storage TODOs: add more admin-based discord bot commands create a mobile app??? write a backend api server to fetch data from robotevents api"}, {"post_id": 17627, "ts": "2026-06-28T14:39:15Z", "hours": 2.0258, "text": "Feats: added tasks improved admin panel UI improved settings page UI and added actions such as user deletion, discord linking, onshape & github integration, password resets, and account information changes. added discord bot slash commands for task creation, task viewing, task sign offs, invite creation, event scheduling TODOs: improve tasks list UI/UX add inventory tracking improve dashboard add more discord bot functionalities"}, {"post_id": 17107, "ts": "2026-06-27T19:35:26Z", "hours": 7.6894, "text": "I just added a couple of slash commands for the discord bot related to admin features (such as creating platform invite links, event scheduling, etc) Updated web interface UI and wired dashboard with supabase db."}]...
|
Title: VEX App by @boberto | Stardance
Devlogs:
I Title: VEX App by @boberto | Stardance
Devlogs:
I just added a couple of slash commands for the discord bot related to admin features (such as creating platform invite links, event scheduling, etc) Updated web interface UI and wired dashboard with supabase db.
Feats: added tasks improved admin panel UI improved settings page UI and added actions such as user deletion, discord linking, onshape & github integration, password resets, and account information changes. added discord bot slash commands for task creation, task viewing, task sign offs, invite creation, event scheduling TODOs: improve tasks list UI/UX add inventory tracking improve dashboard add more discord bot functionalities
Feats: implemented inventory items (signout, creation, viewing, etc.) implemented dashboard widgets implemented task creations implemented documentation view implemented inline edits for tasks implemented documentation + folders for proper storage TODOs: add more admin-based discord bot commands create a mobile app??? write a backend api server to fetch data from robotevents api
Feats: added documentation pages added markdown support added folder creation basically fully CRUD for documentation and folders added discord slash commands TODOs: add more discord slash commands add notificaitons add external integrations (github, fusion360, etc.)
Feats: latency issues a lot of code refactoring pushed the app to prod
Feats: added github integration added team repos fixed some dom hydration errors added push notifs for the discord bot
Feats: general testing planning 3d renders
Feats: Code cleanup Debugging App is now production-ready.
Around four months ago, I noticed my school’s robotics organization had a lot of small problems adding up Our calendar was a one-page Google Doc Communication was scattered Field elements kept getting lost New members constantly needed help People across our 6 teams often had no idea what they were supposed to be doing So a friend and I started building a centralized management portal. A few technical decisions I made Turborepo for a monorepo, so I didn’t have to duplicate backend logic across multiple repos Supabase + Prisma for auth and database accessZuplo for API rate limiting RoboEvents API for competition data GitHub + Fusion 360 webhooks for Discord notifications Render + UptimeRobot to keep hosting cheap and reduce cold starts It was a long and difficult road to get here, as I had to learn so many new tools and resolve so many different problems. But now the portal has officially shipped to our robotics organization, with 200+ members across 6 teams!! Pretty crazy considering it started because our Google Doc calendar sucked.
Ships:
Hey guys, soo since the dashboard invite link reroutes users to /onboarding, it doesnt return a code 200 “ok”. So please use this link instead: https://stlvexapp.guanine.org/join/b93d07e1-b1a8-467e-81fb-d3f36dcff0b7 But anyways, the point of this project wasn’t to build something beautiful, fun, or exciting. Compared to the other things people are building (I saw some awesome spider bots and rocket ship CADs), my project is pretty lame. Why did I build it? Well, around 4 months ago, I noticed some major bottlenecks in my school’s Robotics organization. Our calendar was on a google doc with only a single page, fragmented communications, field elements getting lost, first year members constantly asking for support, and nobody on any of the 6 teams had any idea what they were supposed to do Therefore, I set out to build a solution and I learned SO MUCH along the way! My VEX internal dashboard has taught me so much about backend design such as: rate-limiting throttling oAuth flows SQL databases & normalization database annotations monorepos prefetching & async fetching image preloading GIT!!!!! It was such an amazing journey and it has helped me build a portfolio of projects that actually show that I CAN engineer real apps that hold up against heavy user traffic. (AI WILL NEVER REPLACE ME) The result: I’ve used this app as a my FRONTIER project is SO MANY applications to organizer positions at JamHacks, IgnitionHacks, EurekaHacks, etc… And… Now I work as a backend engineer for THREE HACKATHONS!!! I’m so happy and I know that this may not be the most EXCITING of projects but if you could please support me and my future endeavours thanks :)...
|
1793004714.139515
|
1793091114.139515
|
|
54799
|
jojk by @ingvard | Stardance
|
ingvard
|
1
|
15.0
|
131
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T16:24:18Z", "hours": 15.0, "multiplier": 8.67, "payout": 131, "blessing": "neutral", "text": "Jojk is a markup interpreter for a markup langage i made. I used this project to learn haskell, so i had lots of issues along the way, but i made it through. Some of the features are: Output to both HTML and Markdown User specified output file Nested commands Completely deterministic Getting command nesting to work was difficult, and it still dosent work for edge cases (edge cases being about half the cases) This project only works on linux. WSL should work", "repo": "https://github.com/hyphen-hyphen-hyphen-hyphen/yodel/tree/trunk", "demo": "https://github.com/hyphen-hyphen-hyphen-hyphen/jojk/releases/tag/v0.1.0.0"}]...
|
[{"post_id": 67470, "ts": "202 [{"post_id": 67470, "ts": "2026-09-13T16:08:25Z", "hours": 0.5828, "text": "Final prepares before shipping, and git merge conflicts"}, {"post_id": 66023, "ts": "2026-09-11T15:48:28Z", "hours": 4.85, "text": "Been a while scince the last devlog Since then i have: Written a readme and security policy Support for nested commands Compiles without warnings even more “haskell like” Nesting commands dont work super well, but for simpler nesting it should work fine I have also learnt that haskell types are super weird, somehow theres a difference between String and [Char] , and i have no idea what it is Screenshot is of it compiling without errors"}, {"post_id": 60997, "ts": "2026-09-03T18:09:45Z", "hours": 2.2075, "text": "I have made multiple large changes, including Support for both ordered and unordered lists Output in MarkDown format Rewrite of code to be more haskell like (for example, pattern matching) Making the markdown output took a lot of time, since i basically had to rewrite every formatting function, but it went faster than with html output, probably because im better at haskell now"}, {"post_id": 58209, "ts": "2026-08-30T15:53:42Z", "hours": 2.6747, "text": "Several notable changes, including: Support for lists!!! (Unordered, ordered coming soon) Lambda notation More concise code and shorter function names Getting the lists to work was a nightmare, i had to do some cheeky recursion thing and it was not easy. I also had to put parentheses like everywhere for the compiler to understand what ordering i wanted, but it didnt say that, it just said “Couldn’t match expected type with actual type”, and i had no idea what was going on."}, {"post_id": 57463, "ts": "2026-08-29T16:48:05Z", "hours": 3.3117, "text": "Jojk now has the following features: Support for text types (bold, italic, strikethrough, etc) Can do links! No compiler warnings! Ive learnt lots, most of it being that haskell is weird, but the compiler warnings are awesome. You forgot to specify the input and return type of a function? The compiler warning literally tells you the type, and gives you the exact codepiece you need to add! I did encounter a couple of errors, but most of them were just things like haskell needing an int instead of a “maybe int”(what the hell is a maybe int?)"}, {"post_id": 56622, "ts": "2026-08-28T13:35:23Z", "hours": 1.5133, "text": "Jojk is a markup language im making, and im using it to learn haskell, so i anticipate a lot of issues. Right now it takes a file as an input and outputs the file but in html format"}]...
|
Title: jojk by @ingvard | Stardance
Devlogs:
Jojk Title: jojk by @ingvard | Stardance
Devlogs:
Jojk is a markup language im making, and im using it to learn haskell, so i anticipate a lot of issues. Right now it takes a file as an input and outputs the file but in html format
Jojk now has the following features: Support for text types (bold, italic, strikethrough, etc) Can do links! No compiler warnings! Ive learnt lots, most of it being that haskell is weird, but the compiler warnings are awesome. You forgot to specify the input and return type of a function? The compiler warning literally tells you the type, and gives you the exact codepiece you need to add! I did encounter a couple of errors, but most of them were just things like haskell needing an int instead of a “maybe int”(what the hell is a maybe int?)
Several notable changes, including: Support for lists!!! (Unordered, ordered coming soon) Lambda notation More concise code and shorter function names Getting the lists to work was a nightmare, i had to do some cheeky recursion thing and it was not easy. I also had to put parentheses like everywhere for the compiler to understand what ordering i wanted, but it didnt say that, it just said “Couldn’t match expected type with actual type”, and i had no idea what was going on.
I have made multiple large changes, including Support for both ordered and unordered lists Output in MarkDown format Rewrite of code to be more haskell like (for example, pattern matching) Making the markdown output took a lot of time, since i basically had to rewrite every formatting function, but it went faster than with html output, probably because im better at haskell now
Been a while scince the last devlog Since then i have: Written a readme and security policy Support for nested commands Compiles without warnings even more “haskell like” Nesting commands dont work super well, but for simpler nesting it should work fine I have also learnt that haskell types are super weird, somehow theres a difference between String and [Char] , and i have no idea what it is Screenshot is of it compiling without errors
Final prepares before shipping, and git merge conflicts
Ships:
Jojk is a markup interpreter for a markup langage i made. I used this project to learn haskell, so i had lots of issues along the way, but i made it through. Some of the features are: Output to both HTML and Markdown User specified output file Nested commands Completely deterministic Getting command nesting to work was difficult, and it still dosent work for edge cases (edge cases being about half the cases) This project only works on linux. WSL should work...
|
1793008219.6925983
|
1793094619.6925983
|
|
30861
|
bench power supply by @SohamKaran | Stardance
|
SohamKaran
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T16:23:28Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a dc power supply which can run your projects test prototypes and other kind of stuffs . generally a dc variable power supply cost more than 100 dollars but i build it under that budget", "repo": "https://github.com/sohamboyythrdh6/bench-power-supply/blob/main/README.md", "demo": ""}]...
|
[{"post_id": 67467, "ts": "202 [{"post_id": 67467, "ts": "2026-09-13T16:06:22Z", "hours": 3.2769, "text": "after getting all the components i started building this project after hour of work finally showedup and now i ready to ship this project"}, {"post_id": 26663, "ts": "2026-07-11T16:35:28Z", "hours": 4.1675, "text": "after finding that my desk has no variable power supply i started thinking to build this project at first i also watch some tutorials then chose the parts for building this project later i started building the case for this project which took most of my time after done this i started working on my repo i create the bom write README and add all other essential files and after checking everything i am ready to sent this project for review"}]...
|
Title: bench power supply by @SohamKaran | Stardan Title: bench power supply by @SohamKaran | Stardance
Devlogs:
after finding that my desk has no variable power supply i started thinking to build this project at first i also watch some tutorials then chose the parts for building this project later i started building the case for this project which took most of my time after done this i started working on my repo i create the bom write README and add all other essential files and after checking everything i am ready to sent this project for review
after getting all the components i started building this project after hour of work finally showedup and now i ready to ship this project
Ships:
i made a dc power supply which can run your projects test prototypes and other kind of stuffs . generally a dc variable power supply cost more than 100 dollars but i build it under that budget...
|
1793004931.8737905
|
1793091331.8737905
|
|
59468
|
My own site! by @NamasyuChallagarige | Stardance
|
NamasyuChallagarige
|
2
|
2.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T16:07:46Z", "hours": 1.0, "multiplier": 1.11, "payout": 1, "blessing": "neutral", "text": "What did you make? I made a personal website to introduce myself, show my projects, and share what I’m learning. I built it with HTML, CSS, and JavaScript. What was the challenging part? Making everything work together and getting the layout and interactions to feel right was the most challenging part. I also had to fix bugs and improve the site based on testing. What are you proud of? I’m proud that I built and published my own website and made the design and features myself. Getting it accepted in V.2 also made me really happy. What should people know to test the project? Open the website and explore the different sections, projects, and interactive features. Try clicking the buttons and links to see how the site works.", "repo": "https://github.com/namasyuch/Personal-Web", "demo": "https://namasyuch.github.io/Personal-Web/"}, {"ship_num": 2, "ts": "2026-09-10T10:52:44Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a personal portfolio website from scratch using HTML, CSS, and JavaScript. It showcases my projects, skills, interests, and information about me, and I deployed it using GitHub Pages so it can be accessed online. The challenging part was putting everything together into a complete, functional website and figuring out the structure, styling, JavaScript interactions, debugging, and deployment. I’m proud that I actually finished and shipped my first website instead of leaving it as an idea, and that I learned how the different parts of web development work together. To test it, open the deployed website and explore the different sections, projects, skills, and interactive elements. The main goal is to experience it as a personal portfolio and see how everything is presented.", "repo": "https://github.com/namasyuch/Personal-Web", "demo": "https://namasyuch.github.io/Personal-Web/"}]...
|
[{"post_id": 67332, "ts": "202 [{"post_id": 67332, "ts": "2026-09-13T12:21:21Z", "hours": 0.6031, "text": "I Have changed the website after i have got feedback from the reviewer. Here I have used no Ai."}, {"post_id": 63972, "ts": "2026-09-08T02:06:03Z", "hours": 0.3467, "text": "I have completed the building of my personal website and pushed it in github also ."}, {"post_id": 63744, "ts": "2026-09-07T18:20:35Z", "hours": 0.2753, "text": "I have completed my Personal website. Its just a small project , didnt keep much details."}, {"post_id": 63733, "ts": "2026-09-07T17:57:57Z", "hours": 0.8667, "text": "Started my first first Stardance project . A Personal website in which i included about myself , projects , skills."}]...
|
Title: My own site! by @NamasyuChallagarige | Star Title: My own site! by @NamasyuChallagarige | Stardance
Devlogs:
Started my first first Stardance project . A Personal website in which i included about myself , projects , skills.
I have completed my Personal website. Its just a small project , didnt keep much details.
I have completed the building of my personal website and pushed it in github also .
I Have changed the website after i have got feedback from the reviewer. Here I have used no Ai.
Ships:
I built a personal portfolio website from scratch using HTML, CSS, and JavaScript. It showcases my projects, skills, interests, and information about me, and I deployed it using GitHub Pages so it can be accessed online. The challenging part was putting everything together into a complete, functional website and figuring out the structure, styling, JavaScript interactions, debugging, and deployment. I’m proud that I actually finished and shipped my first website instead of leaving it as an idea, and that I learned how the different parts of web development work together. To test it, open the deployed website and explore the different sections, projects, skills, and interactive elements. The main goal is to experience it as a personal portfolio and see how everything is presented.
What did you make? I made a personal website to introduce myself, show my projects, and share what I’m learning. I built it with HTML, CSS, and JavaScript. What was the challenging part? Making everything work together and getting the layout and interactions to feel right was the most challenging part. I also had to fix bugs and improve the site based on testing. What are you proud of? I’m proud that I built and published my own website and made the design and features myself. Getting it accepted in V.2 also made me really happy. What should people know to test the project? Open the website and explore the different sections, projects, and interactive features. Try clicking the buttons and links to see how the site works....
|
1792997366.2575572
|
1793083766.2575572
|
|
32620
|
MinecraftOS by @rapidSpeed | Stardance
|
rapidSpeed
|
2
|
10.88
|
14
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T15:59:55Z", "hours": 3.0, "multiplier": 5.34, "payout": 14, "blessing": "neutral", "text": "I added maximising and minimising of windows, which was pretty difficult. Adding eaglercraft was pretty easy, but the server is another thing. It took a long time. Btw, eaglercraft does take some time to startup on the website, so please be patient.", "repo": "https://github.com/rapidSpeed4652/MinecraftOS", "demo": "https://rapidspeed4652.github.io/MinecraftOS/"}, {"ship_num": 2, "ts": "2026-07-13T13:04:06Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an OS in the style of minecraft which is a game i like a lot. It took me a long time to make this, and im looking forward to make the next version too. Before this, i barely knew how to code html, css and javascript, but now i can confidently write basic websites :3 I’m very happy with how the website turned out ngl. Making the windows draggable and closable was a very big task, which im glad i was able to do. I hope yall enjoy the website.", "repo": "https://github.com/rapidSpeed4652/MinecraftOS", "demo": "https://rapidspeed4652.github.io/MinecraftOS/"}]...
|
[{"post_id": 75265, "ts": "202 [{"post_id": 75265, "ts": "2026-09-29T16:22:50Z", "hours": 0.8756, "text": "Thanks for the reviews! They gave a lot of insight on how to improve the OS. So, I have made it such that windows opened near the cursor and added the calc application! I will start working on improving the journel app too. I have been wondering if I should add a music player pre loaded with minecraft songs. What do yall think?"}, {"post_id": 55721, "ts": "2026-08-27T18:14:51Z", "hours": 0.3775, "text": "OMGG!!! It finally worked! I have ran a minecraft server on github actions that you can join easily! Technically its an eaglercraftX server, but still! I have lots of plans for future projects using this knowledge i learnt by making this. For now, I’m gonna give the repo link and you can check if the server is running. If it is, u can join the link given in the logs by cloudflare. (dont forget to add the wss:) https://github.com/rapidSpeed4652/Eaglercraft-Server Andd soon imma make a gui in the website to start or stop the server and show stats like number of players online or smh like that. Theres a problem tho, the world isnt persistant. While i tried making it, it didnt work and was taking way too long. I hope i can fix it later. P.S i didnt put time on hackatime, but i swear i spent hours on this"}, {"post_id": 39024, "ts": "2026-08-01T18:05:51Z", "hours": 0.8478, "text": "Added eaglercraftX 1.8.8, it was pretty easy, just downloading the offline .html and embedding it using , honestly the maximising button bothered me as it refused to work due to a simple error . Anyways, this is huge success, but it will lag while the game is loading due to which the windows wont be able to move. I still havent added window resizing which i will add later. I also updated the version numbering, if you look closely TBH, im considering to remove all the personality stuff and make it into a functional os with a calc, browser, games, etc. Note: Once you open the eaglercraft window, you might need to wait 10 seconds for it to load as it is hosted on github pages. I will change the host later to my own nest server."}, {"post_id": 38303, "ts": "2026-07-31T16:53:51Z", "hours": 1.4319, "text": "I finally added maximising and restoring of windows. Im thinking of adding the resizing of windows and minimising. But i have a crazy idea, what if i add eaglercraft to this? Like since it alr works on browser, maybe i can add it as a part of suite of games on the website? Sounds good but hard to implement."}, {"post_id": 27643, "ts": "2026-07-13T12:23:34Z", "hours": 0.7844, "text": "added custom app to credit myself , i think im done with the OS, maybe if i feel bored i might add more apps. But for now, im gonna get the website up on github pages."}, {"post_id": 27125, "ts": "2026-07-12T12:16:27Z", "hours": 1.7547, "text": "Added headers for all the windows . I also implemented the journel app, but you can only view or edit existing journels, you cannot add new journels which sounds incomplete. I might add the feature in the future. For now, I have also fixed the tap on window to bring on top, which is so satisfying ."}, {"post_id": 26736, "ts": "2026-07-11T18:15:00Z", "hours": 0.4058, "text": "Exams are going on 😭😭, but im still gonna do atleast one hour of coding. But for now, i have started modularising of code so that its easier to add more apps. But looks like i have broken the window size and the window on top. Thats a future me problem ¯ _ (ツ)_/¯. I have also started working on the notes app… Dw i will fix it and complete the notes app too tomorrow."}, {"post_id": 26025, "ts": "2026-07-10T16:34:56Z", "hours": 1.4103, "text": "Added the hotbar, which will contain all the programs and windows. I also completed the functionality of closing and opening of windows to all the windows. Should i add the old minecraft launcher icon as my OS icon? I think it would look pretty good."}, {"post_id": 25295, "ts": "2026-07-09T14:22:42Z", "hours": 1.6781, "text": "I have added the functionality of moving windows and closing and opening of them. For now, the functionality of opening and closing is only for hobbies window, i will add it for other windows too. I’m thinking of making the taskbar that holds all the programs as the hotbar in minecraft."}, {"post_id": 24784, "ts": "2026-07-08T16:09:22Z", "hours": 0.8217, "text": "Still working on the minecraft aesthetic. Finding the classic dirt background is difficult, but i think i will finish it by tmr. For today, i have added the content and played around with the style tags and stuff i can add."}]...
|
Title: MinecraftOS by @rapidSpeed | Stardance
Dev Title: MinecraftOS by @rapidSpeed | Stardance
Devlogs:
Still working on the minecraft aesthetic. Finding the classic dirt background is difficult, but i think i will finish it by tmr. For today, i have added the content and played around with the style tags and stuff i can add.
I have added the functionality of moving windows and closing and opening of them. For now, the functionality of opening and closing is only for hobbies window, i will add it for other windows too. I’m thinking of making the taskbar that holds all the programs as the hotbar in minecraft.
Added the hotbar, which will contain all the programs and windows. I also completed the functionality of closing and opening of windows to all the windows. Should i add the old minecraft launcher icon as my OS icon? I think it would look pretty good.
Exams are going on 😭😭, but im still gonna do atleast one hour of coding. But for now, i have started modularising of code so that its easier to add more apps. But looks like i have broken the window size and the window on top. Thats a future me problem ¯ _ (ツ)_/¯. I have also started working on the notes app… Dw i will fix it and complete the notes app too tomorrow.
Added headers for all the windows . I also implemented the journel app, but you can only view or edit existing journels, you cannot add new journels which sounds incomplete. I might add the feature in the future. For now, I have also fixed the tap on window to bring on top, which is so satisfying .
added custom app to credit myself , i think im done with the OS, maybe if i feel bored i might add more apps. But for now, im gonna get the website up on github pages.
I finally added maximising and restoring of windows. Im thinking of adding the resizing of windows and minimising. But i have a crazy idea, what if i add eaglercraft to this? Like since it alr works on browser, maybe i can add it as a part of suite of games on the website? Sounds good but hard to implement.
Added eaglercraftX 1.8.8, it was pretty easy, just downloading the offline .html and embedding it using , honestly the maximising button bothered me as it refused to work due to a simple error . Anyways, this is huge success, but it will lag while the game is loading due to which the windows wont be able to move. I still havent added window resizing which i will add later. I also updated the version numbering, if you look closely TBH, im considering to remove all the personality stuff and make it into a functional os with a calc, browser, games, etc. Note: Once you open the eaglercraft window, you might need to wait 10 seconds for it to load as it is hosted on github pages. I will change the host later to my own nest server.
OMGG!!! It finally worked! I have ran a minecraft server on github actions that you can join easily! Technically its an eaglercraftX server, but still! I have lots of plans for future projects using this knowledge i learnt by making this. For now, I’m gonna give the repo link and you can check if the server is running. If it is, u can join the link given in the logs by cloudflare. (dont forget to add the wss:) https://github.com/rapidSpeed4652/Eaglercraft-Server Andd soon imma make a gui in the website to start or stop the server and show stats like number of players online or smh like that. Theres a problem tho, the world isnt persistant. While i tried making it, it didnt work and was taking way too long. I hope i can fix it later. P.S i didnt put time on hackatime, but i swear i spent hours on this
Thanks for the reviews! They gave a lot of insight on how to improve the OS. So, I have made it such that windows opened near the cursor and added the calc application! I will start working on improving the journel app too. I have been wondering if I should add a music player pre loaded with minecraft songs. What do yall think?
Ships:
I made an OS in the style of minecraft which is a game i like a lot. It took me a long time to make this, and im looking forward to make the next version too. Before this, i barely knew how to code html, css and javascript, but now i can confidently write basic websites :3 I’m very happy with how the website turned out ngl. Making the windows draggable and closable was a very big task, which im glad i was able to do. I hope yall enjoy the website.
I added maximising and minimising of windows, which was pretty difficult. Adding eaglercraft was pretty easy, but the server is another thing. It took a long time. Btw, eaglercraft does take some time to startup on the website, so please be patient....
|
1792975790.3745508
|
1793062190.3745508
|
|
61732
|
Eco-Sort by @rehankasim | Stardance
|
rehankasim
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T15:31:43Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I saw That my Schools Waste management Was very bad and after investigating it i found that it was because students was not responsible so i made which makes the students responsible and I am going to propose this to my School in Some days", "repo": "https://github.com/rehan-kasim/eco-sort", "demo": "https://eco-sort-roan.vercel.app/"}]...
|
[{"post_id": 67265, "ts": "202 [{"post_id": 67265, "ts": "2026-09-13T10:18:26Z", "hours": 5.2372, "text": "Everything is done sometimes the ai dont work my qoata of gemini i submitted everything at once"}]...
|
Title: Eco-Sort by @rehankasim | Stardance
Devlog Title: Eco-Sort by @rehankasim | Stardance
Devlogs:
Everything is done sometimes the ai dont work my qoata of gemini i submitted everything at once
Ships:
I saw That my Schools Waste management Was very bad and after investigating it i found that it was because students was not responsible so i made which makes the students responsible and I am going to propose this to my School in Some days...
|
1793058463.3537648
|
1793144863.3537648
|
|
44558
|
Bulletin Board by @dystap | Stardance
|
dystap
|
1
|
18.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T15:29:51Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a social media website inspired from old forums. I’m proud that I’m able to use the framework correctly. This is my first social media website & please no bad stuff I didn’t add moderation 😭 (except deleting posts manually)", "repo": "https://github.com/dystap/bulletin-board", "demo": "https://bulletinboard.pythonanywhere.com/"}]...
|
[{"post_id": 67419, "ts": "202 [{"post_id": 67419, "ts": "2026-09-13T14:50:31Z", "hours": 18.1453, "text": "I FIXED THE LOGIN HOME PAGE"}]...
|
Title: Bulletin Board by @dystap | Stardance
Devl Title: Bulletin Board by @dystap | Stardance
Devlogs:
I FIXED THE LOGIN HOME PAGE
Ships:
I made a social media website inspired from old forums. I’m proud that I’m able to use the framework correctly. This is my first social media website & please no bad stuff I didn’t add moderation 😭 (except deleting posts manually)...
|
1793004685.4726992
|
1793091085.4726992
|
|
61660
|
Portfolio by @dipukalwar | Stardance
|
dipukalwar
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T15:23:09Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made it using HTML and CSS, this is a static web page of my portfolio. I build this to experience what stardance is and what can i learn and gain from this and also I faced some ui bug which i fix and also deployed this on github pages and is accessable with my live projects links.", "repo": "https://github.com/dipukalwar/portfolioo", "demo": "https://dipukalwar.github.io/portfolioo/"}]...
|
[{"post_id": 67429, "ts": "202 [{"post_id": 67429, "ts": "2026-09-13T15:15:10Z", "hours": 1.4867, "text": "I did all the crazy styling, with cutu bluee themes and also added live projects links and made it very very simple and completed it."}, {"post_id": 67210, "ts": "2026-09-13T08:17:28Z", "hours": 0.7233, "text": "This is kinda personal site ie portfolio in which i made a kinda cute navbar, which mightnot look cute but still"}]...
|
Title: Portfolio by @dipukalwar | Stardance
Devlo Title: Portfolio by @dipukalwar | Stardance
Devlogs:
This is kinda personal site ie portfolio in which i made a kinda cute navbar, which mightnot look cute but still
I did all the crazy styling, with cutu bluee themes and also added live projects links and made it very very simple and completed it.
Ships:
I made it using HTML and CSS, this is a static web page of my portfolio. I build this to experience what stardance is and what can i learn and gain from this and also I faced some ui bug which i fix and also deployed this on github pages and is accessable with my live projects links....
|
1793058450.5816264
|
1793144850.5816264
|
|
23805
|
Inverted Pendulum by @runthebot | Stardance
|
runthebot
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T15:14:05Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an inverted pendulum and leant a lot about control theory.", "repo": "https://github.com/RunTheBot/inverted-pendulum", "demo": ""}]...
|
[{"post_id": 67424, "ts": "202 [{"post_id": 67424, "ts": "2026-09-13T15:11:02Z", "hours": 37.8686, "text": "This is one big catch-up log covering nine recordings. I worked on the initial design, rebuilt parts of the belt assembly, chose and mounted the encoders, dealt with the wiring, and started learning how to control the system with a state-space model and LQR. Starting the CAD I began by researching different mechanical options while building the model in Onshape. Before I could get far into the full assembly, I needed to settle details such as the shaft, bearings, supports, and how everything would fit together.The first recording was only 57 minutes because recording my screen was making everything lag. In the next session, I continued developing the pivot assembly. The shaft passes through a bearing mounted in a shaped support plate, with another support behind it.The following 2h 52m session continued the CAD work. I spent more time on the plates, their hole layouts, and the surrounding geometry. At this stage, I was still developing individual parts rather than working with a finished mechanism. Reworking the belt assembly I spent another 38 minutes remaking the belt-related parts. I moved between editing the plate and checking how everything fit in the full assembly. This made it easier to see how the rail, carriage, shaft supports, and belt system would work together.This is why the update contains several separate CAD sessions. I kept returning to the same mechanism as the design developed: first the pivot, then the plates and belt assembly, and eventually the encoder mounts and smaller hardware details.Choosing the encodersThe next problem was deciding which encoders to use. I researched different options and mounting arrangements, including AMT-style encoders, before deciding to use the encoders I already had. That took another 1h 1m.Choosing the encoder was only half of the problem. I still had to determine how to mount it and connect everything reliably. Encoder wiring pain The appropriately named “Encoder Wiring Pain” session lasted 3h 40m. I worked through the encoder connections and looked at mounting references while figuring out how the sensor would fit into the rest of the mechanism.After that, I spent another 1h 52m making smaller mechanical changes in Onshape. By this point I was working on details around the encoder housing, connector, fasteners, and nearby parts.These changes were individually small, but they mattered because the sensor needed to fit around the existing hardware without interfering with the moving assembly.Learning state space and LQR The longest of the first eight sessions was 5h 19m. I spent it coding, learning about state-space control and LQR, and continuing some of the CAD work.I worked through notes for a state-space model and LQR controller for a cart double-pendulum system. This included defining the system’s state vector and understanding how the state-space equations describe its motion.This part was mainly development and learning. I haven’t established a successful balancing test from these recordings yet, so the controller still needs to be implemented, tuned, and tested on the real mechanism.Hardware work and final CAD changes The last recording covers hands-on hardware work alongside a few final CAD changes. I worked on the wiring at my desk while using references such as the Raspberry Pi Pico pinout.Again, this recording ran much longer than the actual work. Please count it as roughly 4–5 hours rather than the full 7h 41m shown by Lapse."}, {"post_id": 56170, "ts": "2024-08-16T00:00:00Z", "hours": 0.0, "text": "Programming… AND TUNING!!!! and testing. No challange here really, smooth sailing"}, {"post_id": 56169, "ts": "2024-08-14T00:00:00Z", "hours": 0.0, "text": "Hours: 4h Started on rewiring, Using a SKR Pico for a stepper this time. passing encoder through a RP2350 since its a 5v sensor. Im using a SKR pico now sooooo… I first feed the 5V encoder signal through a Pico 2 to translate it to 3.3v"}, {"post_id": 56089, "ts": "2024-08-10T00:00:00Z", "hours": 0.0, "text": "Hours: 4 Very slow CADing of a redesign. Using a stepper motor now soo yay."}, {"post_id": 56088, "ts": "2024-07-09T00:00:00Z", "hours": 0.0, "text": "Chud day. Worked on amt alignment for second stage, quite fast, went through 4 iteration, testing and calculating spacing ending up making the tool below did the wireing for the amt"}, {"post_id": 56087, "ts": "2024-06-21T00:00:00Z", "hours": 0.0, "text": "Switched Hex shaft in CAD to a bored out hex shaft"}]...
|
Title: Inverted Pendulum by @runthebot | Stardance Title: Inverted Pendulum by @runthebot | Stardance
Devlogs:
Switched Hex shaft in CAD to a bored out hex shaft
Chud day. Worked on amt alignment for second stage, quite fast, went through 4 iteration, testing and calculating spacing ending up making the tool below did the wireing for the amt
Hours: 4 Very slow CADing of a redesign. Using a stepper motor now soo yay.
Hours: 4h Started on rewiring, Using a SKR Pico for a stepper this time. passing encoder through a RP2350 since its a 5v sensor. Im using a SKR pico now sooooo… I first feed the 5V encoder signal through a Pico 2 to translate it to 3.3v
Programming… AND TUNING!!!! and testing. No challange here really, smooth sailing
This is one big catch-up log covering nine recordings. I worked on the initial design, rebuilt parts of the belt assembly, chose and mounted the encoders, dealt with the wiring, and started learning how to control the system with a state-space model and LQR. Starting the CAD I began by researching different mechanical options while building the model in Onshape. Before I could get far into the full assembly, I needed to settle details such as the shaft, bearings, supports, and how everything would fit together.The first recording was only 57 minutes because recording my screen was making everything lag. In the next session, I continued developing the pivot assembly. The shaft passes through a bearing mounted in a shaped support plate, with another support behind it.The following 2h 52m session continued the CAD work. I spent more time on the plates, their hole layouts, and the surrounding geometry. At this stage, I was still developing individual parts rather than working with a finished mechanism. Reworking the belt assembly I spent another 38 minutes remaking the belt-related parts. I moved between editing the plate and checking how everything fit in the full assembly. This made it easier to see how the rail, carriage, shaft supports, and belt system would work together.This is why the update contains several separate CAD sessions. I kept returning to the same mechanism as the design developed: first the pivot, then the plates and belt assembly, and eventually the encoder mounts and smaller hardware details.Choosing the encodersThe next problem was deciding which encoders to use. I researched different options and mounting arrangements, including AMT-style encoders, before deciding to use the encoders I already had. That took another 1h 1m.Choosing the encoder was only half of the problem. I still had to determine how to mount it and connect everything reliably. Encoder wiring pain The appropriately named “Encoder Wiring Pain” session lasted 3h 40m. I worked through the encoder connections and looked at mounting references while figuring out how the sensor would fit into the rest of the mechanism.After that, I spent another 1h 52m making smaller mechanical changes in Onshape. By this point I was working on details around the encoder housing, connector, fasteners, and nearby parts.These changes were individually small, but they mattered because the sensor needed to fit around the existing hardware without interfering with the moving assembly.Learning state space and LQR The longest of the first eight sessions was 5h 19m. I spent it coding, learning about state-space control and LQR, and continuing some of the CAD work.I worked through notes for a state-space model and LQR controller for a cart double-pendulum system. This included defining the system’s state vector and understanding how the state-space equations describe its motion.This part was mainly development and learning. I haven’t established a successful balancing test from these recordings yet, so the controller still needs to be implemented, tuned, and tested on the real mechanism.Hardware work and final CAD changes The last recording covers hands-on hardware work alongside a few final CAD changes. I worked on the wiring at my desk while using references such as the Raspberry Pi Pico pinout.Again, this recording ran much longer than the actual work. Please count it as roughly 4–5 hours rather than the full 7h 41m shown by Lapse.
Ships:
I made an inverted pendulum and leant a lot about control theory....
|
1793004582.2038963
|
1793090982.2038963
|
|
61384
|
SchoolOs by @fuchstu | Stardance
|
fuchstu
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T15:13:41Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made SchoolOS, a small web-based desktop that runs in the browser. It has draggable windows, a dock and different apps like Notes, File Manager, Terminal, Paint and Settings. I also added things like wallpaper saving, file storage and localStorage, and I’ve been working on making the apps transparent and fixing bugs in the drawing app.I made SchoolOS, a small web-based desktop that runs in the browser. It has draggable windows, a dock and different apps like Notes, File Manager, Terminal, Paint and Settings. I also added things like wallpaper saving, file storage and localStorage, and I’ve been working on making the apps transparent and fixing bugs in the drawing app.", "repo": "https://github.com/Foxiified/WebOS", "demo": "https://foxiified.github.io/WebOS/"}]...
|
[{"post_id": 67425, "ts": "202 [{"post_id": 67425, "ts": "2026-09-13T15:11:42Z", "hours": 0.305, "text": "I’ve been working on making all the apps transparent and fixing some bugs in the drawing app."}, {"post_id": 67394, "ts": "2026-09-13T14:18:31Z", "hours": 0.2981, "text": "I’ve been working on adding a more transparent look to the SchoolOS environment."}, {"post_id": 67378, "ts": "2026-09-13T13:55:45Z", "hours": 3.3725, "text": "Started working on SchoolOS. I made the basic desktop first, then added the Welcome screen, frame and windows. After that I added some apps like Notes, File Manager, Terminal and Paint. I also got the windows draggable and made notes, files and wallpapers save with localStorage."}]...
|
Title: SchoolOs by @fuchstu | Stardance
Devlogs:
Title: SchoolOs by @fuchstu | Stardance
Devlogs:
Started working on SchoolOS. I made the basic desktop first, then added the Welcome screen, frame and windows. After that I added some apps like Notes, File Manager, Terminal and Paint. I also got the windows draggable and made notes, files and wallpapers save with localStorage.
I’ve been working on adding a more transparent look to the SchoolOS environment.
I’ve been working on making all the apps transparent and fixing some bugs in the drawing app.
Ships:
I made SchoolOS, a small web-based desktop that runs in the browser. It has draggable windows, a dock and different apps like Notes, File Manager, Terminal, Paint and Settings. I also added things like wallpaper saving, file storage and localStorage, and I’ve been working on making the apps transparent and fixing bugs in the drawing app.I made SchoolOS, a small web-based desktop that runs in the browser. It has draggable windows, a dock and different apps like Notes, File Manager, Terminal, Paint and Settings. I also added things like wallpaper saving, file storage and localStorage, and I’ve been working on making the apps transparent and fixing bugs in the drawing app....
|
1793055338.6517296
|
1793141738.6517296
|
|
4353
|
InviteHub by @Mrithul_E | Stardance
|
Mrithul_E
|
2
|
85.0
|
1614
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T15:04:05Z", "hours": 4.0, "multiplier": 12.49, "payout": 49, "blessing": "neutral", "text": "I made a website for creating digital invitation webpages by simply selecting a template and filling out a form. This can help reduce paper usage by decreasing printed inviation lol .. I faced many challenges during the development: Building the logic for creating different different forms for each and every templates Limiting the total file size in http request Building a UI for creating forms by Drag-and-Droping Couldn’t host in vercel because vercel blocks requests more that ~4 MB Admin centralized working (only admin can create templates, this ensures security) I am proud of dedecating 3 months to complete this project, without doing any other project. To run my project my project you will need firebase api key, and hackclub cdn api. But you can’t get the already created templates because those are stored in firebase. what’s new in this ship 2 fixed some security vulnerability as per github code scan Added assets completely handmade with canva replaced many fonts in home page with cursive fonts added our mission section in the home page", "repo": "https://github.com/Mrithul-E/InviteHub", "demo": "https://invitehub.mrithul.in/"}, {"ship_num": 2, "ts": "2026-09-06T13:06:11Z", "hours": 81.0, "multiplier": 19.23, "payout": 1565, "blessing": "neutral", "text": "I made a website for creating digital invitation webpages by simply selecting a template and filling out a form. This can help reduce paper usage by decreasing printed inviation lol .. I faced many challenges during the development: Building the logic for creating different different forms for each and every templates Limiting the total file size in http request Building a UI for creating forms by Drag-and-Droping Couldn’t host in vercel because vercel blocks requests more that ~4 MB Admin centralized working (only admin can create templates, this ensures security) I am proud of dedecating 3 months to complete this project, without doing any other project. To run my project my project you will need firebase api key, and hackclub cdn api. But you can’t get the already created templates because those are stored in firebase.", "repo": "https://github.com/Mrithul-E/InviteHub", "demo": "https://invitehub.mrithul.in/"}]...
|
[{"post_id": 66105, "ts": "202 [{"post_id": 66105, "ts": "2026-09-11T18:10:15Z", "hours": 0.3892, "text": "Minor security fixes as per GitHub security scan Inclusion of functionality from an untrusted source Client-side URL redirect using query in URL"}, {"post_id": 66022, "ts": "2026-09-11T15:47:24Z", "hours": 1.2178, "text": "Some reworks readme updated added more gap in between the template card added the github link to the navbar changed some fonts in homepage and added some paragraph sections there"}, {"post_id": 64908, "ts": "2026-09-09T16:58:28Z", "hours": 1.6047, "text": "full css and ui rework: Changed the background image Made the design and animation minimalistic updated the navbar and footer removed unwanted styling in css removed unwanted gradient from text made minimal footer"}, {"post_id": 63600, "ts": "2026-09-07T14:55:46Z", "hours": 0.7089, "text": "Minor css fix removed many useless css code. Made it more good. not that the gradients are not generated by AI, instead it is generated by online CSS gradient maker. Don’t this that this is a AI generated/AI styled project. This site doesn’t have that much huge css to use AI. The Login with Google button is copied by some article in Medium. The gradient used in the home page Get Started button is custom made using CSS gradient generator The background image and the animated phone image is generated by Chatgpt. I don’t know whether this is contributing to the AI feel 🥲🥲😭😭 UPDATE: : By asking to shipwrights, they say that it was flagged and AI because it used AI generated images, which is not allowed. So i made it my self using canva, here it is:"}, {"post_id": 62873, "ts": "2026-09-06T12:22:58Z", "hours": 0.3833, "text": "Fix: Chrome media hub staying active even when video stops fixed this by removing the src and loading the video again into chrome’s memory, this solves the problem ."}, {"post_id": 62835, "ts": "2026-09-06T11:22:25Z", "hours": 1.3864, "text": "Added demo video to the home page Updated README.md and also fixed many minor css and html issues"}, {"post_id": 62397, "ts": "2026-09-05T18:51:00Z", "hours": 1.4019, "text": "Added README.md !! *Not comleted yet, no images and videos are added yet"}, {"post_id": 62092, "ts": "2026-09-05T10:41:55Z", "hours": 1.1986, "text": "Added the pages such as About, privacy-policies etc… Added About, Privacy policies , Terms of service page in hbs and added the corresponding routers for it"}, {"post_id": 62018, "ts": "2026-09-05T07:10:46Z", "hours": 0.5586, "text": "Added confirmation for logout and Added redirect to the last visited URL in login Added redirect to the last visited URL in login Added confirmation for logout, and made the logout route a long random string"}, {"post_id": 61684, "ts": "2026-09-04T18:32:50Z", "hours": 3.3572, "text": "Added ‘My invitations’ section in website Added My invitations section that shows the invitations created by that user. From here user can see the invitation, creation date, and user can also delete the invitation. Delete option will delete all files that are part of that invitation from the cdn, then delete the complete invitation from the db. And also added some minor fixes such as: webpage title issues added favicon etc…"}, {"post_id": 61049, "ts": "2026-09-03T19:19:07Z", "hours": 1.6256, "text": "User experience improvement implemented: made the created invitation url return fron server to frontend removed unwanted console.log used for debugging made the “Get started” button in frontend functional Added: invitation link and copy button in invitation creation form submission page"}, {"post_id": 60427, "ts": "2026-09-02T18:50:07Z", "hours": 1.5317, "text": "Added search option in templates Implemented using Fuse.js *images are placeholders"}, {"post_id": 60264, "ts": "2026-09-02T15:01:57Z", "hours": 1.1522, "text": "Reached initial working stage First working template added Added: render of hbs from cdn rendering of custom form from database"}, {"post_id": 59313, "ts": "2026-09-01T01:12:28Z", "hours": 2.1864, "text": "added template and form rendering from Database"}, {"post_id": 58317, "ts": "2026-08-30T18:12:36Z", "hours": 4.9681, "text": "Added a option to write the template(HBS) and the form from frontend implemented: option to write the template(HBS) and the form from frontend hbs to CDN script 10 MB fields limit in template creation router (multer) Invitation total file size limit 50 MB (formidable) Invitation data processing and cleanup"}, {"post_id": 56814, "ts": "2026-08-28T18:55:14Z", "hours": 1.57, "text": "Connected the form created using jquery forms to HackClub CDN My website is basically a site that have many templates for different kind of event. A user can select a template , this will redirect to a form. Each template have entirely different forms , each form is created by the Admin using a jquery form builder ui. Because these form structures are unknow to the server, the server dont know how much file input fields are there. so we cant set a limit on number of file input fields and per input size. So I set a 50 MB total upload limit using formidable before sending files to hackclub cdn. This makes the usage fair."}, {"post_id": 56609, "ts": "2026-08-28T13:05:06Z", "hours": 1.4072, "text": "Handle multipart uploads with file size limits using busboy formidable ✓ In the last devlog I shared a very large code to limit max total requiest size using busboy. Yesterday , In a simple google search , the Google AI mode suggested me of Formidable previously idk formidable … So I learned about that , it made my code so tiny frontend logic was already there"}, {"post_id": 54984, "ts": "2026-08-26T12:38:33Z", "hours": 2.4072, "text": "Handle multipart uploads with file size limits using busboy i want to limit the max total file upload to 50 MB, multer cant have this feature so I use busboy and wrote long long code to solve this problem code :"}, {"post_id": 54621, "ts": "2026-08-25T17:23:09Z", "hours": 0.6072, "text": "Research: How to limit the total file size in a multipart/formData (Express.js) After many searches I found out that multer don’t support this I am planning to use Busboy directly"}, {"post_id": 54387, "ts": "2026-08-25T11:35:57Z", "hours": 2.1842, "text": "Added error messages in data submissions in rendered template form Added a 50 MB file size limit in file upload (for now only frontend checks are implemented, backend check is TODO)."}, {"post_id": 51711, "ts": "2026-08-21T15:19:40Z", "hours": 2.8461, "text": "Added delete template option for admin The delete option will delete the template from the database and also delete the thumbnail image stored in hackclub CDN"}, {"post_id": 34488, "ts": "2026-07-25T07:52:12Z", "hours": 4.4856, "text": "Switched from formeo to jquery form builder formeo doesn’t support many input types"}, {"post_id": 30066, "ts": "2026-07-17T10:51:07Z", "hours": 1.1742, "text": "Researching on custom form builder On deep research on making a custom form builder form my each templates , I found : formeo, jquery form builder and survayJS"}, {"post_id": 28398, "ts": "2026-07-14T17:08:38Z", "hours": 4.6656, "text": "connected the admin only template creation form to the firestore AND also made the template cards load dynamically currently provided image is a placeholder This is admin page , only admin page have create template button"}, {"post_id": 25450, "ts": "2026-07-09T18:43:35Z", "hours": 1.7492, "text": "Added hackclub cdn to the project !!! At first it didn’t worked because of compatibly issue of new nodejs’s fetch and npm form-data module fixed using new build-in formData()"}, {"post_id": 23622, "ts": "2026-07-06T18:04:21Z", "hours": 2.0433, "text": "new knoledge unlocked: I can use : app . use ( ' /admin ' , requireAdmin , adminRouter ) instead of : app . use ( requireAdmin ) app . use ( ' /admin ' , adminRouter ) I know everybody knows this, but this is a knowledge to me"}, {"post_id": 21534, "ts": "2026-07-03T15:40:01Z", "hours": 1.2683, "text": "added a very very cool text area for entering description for each field completely build on bootstrap accordion check it out !!!"}, {"post_id": 20136, "ts": "2026-07-01T17:55:02Z", "hours": 1.2319, "text": "First template design completed !!! fully using Bootstrap , and some css"}, {"post_id": 19898, "ts": "2026-07-01T10:16:49Z", "hours": 1.5828, "text": "Continuing the writting of the first template for the site !!! basically my project is a invitation page builder, it needs a lot of custom template. | ▽ not complete yet"}, {"post_id": 18554, "ts": "2026-06-29T18:58:19Z", "hours": 6.7694, "text": "Devlog 6 - Template creation form In this 6h 44m, I made a lot of features but the main highlight was the work on the template creation form ( continuation of previous devlog) Story Time: Basically my project is a wedding invitation page generator. My website will have a lot of prebuild invitation template(HBS) for different different events So the point is different templates require different forms should be filled by the user. Therefore when the admin create different template, the admin should list the require fields for the form of the specific template. Problems faced: My thoughts was to make a prebuild list of fields, from that the admin should list them in specific order. Problem - 1 The first problem was there is no form element to do these. So i used a select element with a ‘Add’ btn. For the sorting, at first i used up/down button, but that wasn’t smooth. After researching I found sortable js. At first sortable js also was not smooth, I fixed that by removing some bootstrap classes from the tag. Problem - 2 The next problem I faced was I cant use required in the custom fields list maker, So I can’t make that field mandatory. Solution (simple) The solution was simple, I made a invisible <textarea required .....> , and add the list of fields to that in json string when the admin edited the list. Thank you for reading ❤️, Mrithul."}, {"post_id": 15040, "ts": "2026-06-24T12:54:36Z", "hours": 4.9608, "text": "Devlog 5 - Templates Page Spent 4 hours and 52 minutes working on the templates page today. This page is going to be the main place where all invitation templates are managed, so I wanted to get the basic structure done before moving on to creating more templates. Templates Grid The first thing I worked on was the layout. I switched the page to a responsive grid system and started building the actual templates page. I also added a Create Template card that is only visible to admins. Clicking the card opens a modal for creating new templates. Template Creation Modal The modal is still incomplete, but the basic flow is now working. Currently it has fields for: Template name HTML file name Preview image Template category Template fields There’s still quite a bit of work left to do here, but at least the structure is finally in place. Template Categories & Fields One thing I didn’t want to do was create a completely separate form for every invitation type. Instead, I’m building a system where templates can be configured using categories and predefined fields. const templateCategories = [ { id : \" wedding \" , name : \" Wedding \" }, { id : \" engagement \" , name : \" Engagement \" }, { id : \" birthday \" , name : \" Birthday \" } .... ] const templateFields = [ { id : \" eventTitle \" , label : \" Event Title \" , type : \" text \" , category : \" common \" }, { id : \" groomName \" , label : \" Groom Name \" , type : \" text \" , category : \" wedding \" } .... ] Right now I’ve added categories for weddings, birthdays, engagements, housewarmings, baby showers and several other event types. The field system should make adding future templates a lot easier. Small UI Improvements I also spent some time cleaning up the page and added a footer. The site is slowly starting to look more like an actual product instead of a collection of pages. Next The next step is finishing the template creation page and making the field selection system fully functional. Once that’s done, adding new templates should be much faster than it is right now."}, {"post_id": 8246, "ts": "2026-06-13T18:26:46Z", "hours": 1.1044, "text": "Devlog - 4 Today I connected my website to firestore for database I have implemented the saving of login information of user to user collection of firestore database This is the implementation code: service\\userService.js : async function saveUserLogin ( userRecord ) { return db . collection ( \" users \" ) . doc ( userRecord . uid ) . set ( { displayName : userRecord . displayName || null , email : userRecord . email , photoURL : userRecord . photoURL || null , lastLoginAt : new Date ( userRecord . metadata . lastSignInTime ) }, { merge : true } ) } service\\userService.js : router . post ( \" /sessionLogin \" , async ( req , res ) => { const idToken = req . body . idToken ; const expiresIn = 60 * 60 * 24 * 13 * 1000 ; try { const sessionCookie = await admin . auth (). createSessionCookie ( idToken , { expiresIn : expiresIn }); const options = { maxAge : expiresIn , httpOnly : true , secure : false }; const decodedClaims = await admin . auth (). verifySessionCookie ( sessionCookie , true ); const userRecord = await admin . auth (). getUser ( decodedClaims . uid ); await saveUserLogin ( userRecord ) res . cookie ( ' session ' , sessionCookie , options ) res . status ( 200 ). send ({ status : \" success \" }) } catch ( err ) { console . error ( err ) res . status ( 401 ). send ( ' Unauthorized request! ' ); } }) I also created the redirect from login page if login successful / refresh in login fail (these things where previously missing) Also there are many UI improvements made, that’s not written in this Devlog (●’◡’●)"}, {"post_id": 7934, "ts": "2026-06-13T07:31:13Z", "hours": 8.3672, "text": "Devlog Time spent: 8 hours 15 minutes across ~6 days This week I mostly worked on security-related improvements and continued work on the invitation template system. Security Fixes When I opened GitHub, I got a security notification. After checking it, I found that a Firebase client-side API key was present in the repository. I know Firebase client API keys are not secret credentials by themselves, but leaving them exposed can still make abuse easier, especially if other protections are missing. Since the project is still in development, I decided to clean it up now rather than later. What I did: Revoked the old API key Generated a new one Moved the configuration into environment variables Made sure sensitive files are not pushed to GitHub res . locals . firebaseClientCred = Buffer . from ( process . env . firebaseClientCred , \" base64 \" ) . toString ( \" utf-8 \" ); The long-term plan is to separate development and production configurations. Right now localhost access is required for development, so strict domain restrictions are not practical yet. Once the project is deployed, I plan to have: A development API configuration that allows localhost A production API configuration that only allows requests from the final website domain The developer configuration will stay out of production deployments. Even if development code is accidentally pushed, it should fail instead of exposing access that was never intended for production. The backend Firebase SDK setup was already safe, so most of this work was focused on the client-side configuration. Navbar Improvements I also implemented automatic navbar link highlighting. Instead of manually setting the active page for every route, the navbar now checks the current URL and highlights the correct link automatically. function highlightCurrentPageLink () { const currentPageUrl = window . location . pathname ; const links = document . querySelectorAll ( \" #navbar-ul li a \" ); links . forEach (( link ) => { const href = link . getAttribute ( \" href \" ); if ( href . split ( \" / \" )[ 1 ] === currentPageUrl . split ( \" / \" )[ 1 ]) { link . classList . add ( \" active \" ); } else { link . classList . remove ( \" active \" ); } }); } Small change, but it makes maintaining the navigation much easier. User Menu Worked on the user menu and logout functionality. Nothing huge here, but it is another piece of the authentication flow that is now coming together. Template System I created the HBS file structure for the template page and spent a lot of time thinking about how templates should actually be implemented. This is currently the biggest blocker. There are several ways to handle template rendering and customization, and I don’t want to lock myself into a design that becomes difficult to maintain later. A lot of the development time this week went into planning, experimenting, and changing approaches rather than writing large amounts of code. Next Create separate Firebase development and production configurations Add domain restrictions after deployment Continue work on the invitation template system Finish the template rendering workflow Improve user account features There is still a lot to do, but the project is becoming more stable and secure before moving further into feature development."}, {"post_id": 3693, "ts": "2026-06-06T18:57:54Z", "hours": 2.5967, "text": "Devlog-2: Today , I added a beautiful animation to the home page made the home page overall beautiful Also fixed a authentication error : the fix was simple - I accidently wrote (res, req) instead of (req, res) in express router Also completed the login page design What’s next : Surely build a footer tomorrow 😁 Also planning to create a template creation tool for Admin Note: the PHONE image have a cool animation effect. completely done by hands , no AI only used AI for clearing doubt"}, {"post_id": 2855, "ts": "2026-06-05T18:18:17Z", "hours": 8.5736, "text": "Login Page within 8h 33m , I made the home page, firebase auth, designed logo etc.. currently I am working on designing the ‘Login with google’ page I thought I should only submit and link the project after completing the full project … 😟 but I didn’t forget to connect hackatime 😁🥳"}]...
|
Title: InviteHub by @Mrithul_E | Stardance
Devlog Title: InviteHub by @Mrithul_E | Stardance
Devlogs:
Login Page within 8h 33m , I made the home page, firebase auth, designed logo etc.. currently I am working on designing the ‘Login with google’ page I thought I should only submit and link the project after completing the full project … 😟 but I didn’t forget to connect hackatime 😁🥳
Devlog-2: Today , I added a beautiful animation to the home page made the home page overall beautiful Also fixed a authentication error : the fix was simple - I accidently wrote (res, req) instead of (req, res) in express router Also completed the login page design What’s next : Surely build a footer tomorrow 😁 Also planning to create a template creation tool for Admin Note: the PHONE image have a cool animation effect. completely done by hands , no AI only used AI for clearing doubt
Devlog Time spent: 8 hours 15 minutes across ~6 days This week I mostly worked on security-related improvements and continued work on the invitation template system. Security Fixes When I opened GitHub, I got a security notification. After checking it, I found that a Firebase client-side API key was present in the repository. I know Firebase client API keys are not secret credentials by themselves, but leaving them exposed can still make abuse easier, especially if other protections are missing. Since the project is still in development, I decided to clean it up now rather than later. What I did: Revoked the old API key Generated a new one Moved the configuration into environment variables Made sure sensitive files are not pushed to GitHub res . locals . firebaseClientCred = Buffer . from ( process . env . firebaseClientCred , " base64 " ) . toString ( " utf-8 " ); The long-term plan is to separate development and production configurations. Right now localhost access is required for development, so strict domain restrictions are not practical yet. Once the project is deployed, I plan to have: A development API configuration that allows localhost A production API configuration that only allows requests from the final website domain The developer configuration will stay out of production deployments. Even if development code is accidentally pushed, it should fail instead of exposing access that was never intended for production. The backend Firebase SDK setup was already safe, so most of this work was focused on the client-side configuration. Navbar Improvements I also implemented automatic navbar link highlighting. Instead of manually setting the active page for every route, the navbar now checks the current URL and highlights the correct link automatically. function highlightCurrentPageLink () { const currentPageUrl = window . location . pathname ; const links = document . querySelectorAll ( " #navbar-ul li a " ); links . forEach (( link ) => { const href = link . getAttribute ( " href " ); if ( href . split ( " / " )[ 1 ] === currentPageUrl . split ( " / " )[ 1 ]) { link . classList . add ( " active " ); } else { link . classList . remove ( " active " ); } }); } Small change, but it makes maintaining the navigation much easier. User Menu Worked on the user menu and logout functionality. Nothing huge here, but it is another piece of the authentication flow that is now coming together. Template System I created the HBS file structure for the template page and spent a lot of time thinking about how templates should actually be implemented. This is currently the biggest blocker. There are several ways to handle template rendering and customization, and I don’t want to lock myself into a design that becomes difficult to maintain later. A lot of the development time this week went into planning, experimenting, and changing approaches rather than writing large amounts of code. Next Create separate Firebase development and production configurations Add domain restrictions after deployment Continue work on the invitation template system Finish the template rendering workflow Improve user account features There is still a lot to do, but the project is becoming more stable and secure before moving further into feature development.
Devlog - 4 Today I connected my website to firestore for database I have implemented the saving of login information of user to user collection of firestore database This is the implementation code: service\userService.js : async function saveUserLogin ( userRecord ) { return db . collection ( " users " ) . doc ( userRecord . uid ) . set ( { displayName : userRecord . displayName || null , email : userRecord . email , photoURL : userRecord . photoURL || null , lastLoginAt : new Date ( userRecord . metadata . lastSignInTime ) }, { merge : true } ) } service\userService.js : router . post ( " /sessionLogin " , async ( req , res ) => { const idToken = req . body . idToken ; const expiresIn = 60 * 60 * 24 * 13 * 1000 ; try { const sessionCookie = await admin . auth (). createSessionCookie ( idToken , { expiresIn : expiresIn }); const options = { maxAge : expiresIn , httpOnly : true , secure : false }; const decodedClaims = await admin . auth (). verifySessionCookie ( sessionCookie , true ); const userRecord = await admin . auth (). getUser ( decodedClaims . uid ); await saveUserLogin ( userRecord ) res . cookie ( ' session ' , sessionCookie , options ) res . status ( 200 ). send ({ status : " success " }) } catch ( err ) { console . error ( err ) res . status ( 401 ). send ( ' Unauthorized request! ' ); } }) I also created the redirect from login page if login successful / refresh in login fail (these things where previously missing) Also there are many UI improvements made, that’s not written in this Devlog (●’◡’●)
Devlog 5 - Templates Page Spent 4 hours and 52 minutes working on the templates page today. This page is going to be the main place where all invitation templates are managed, so I wanted to get the basic structure done before moving on to creating more templates. Templates Grid The first thing I worked on was the layout. I switched the page to a responsive grid system and started building the actual templates page. I also added a Create Template card that is only visible to admins. Clicking the card opens a modal for creating new templates. Template Creation Modal The modal is still incomplete, but the basic flow is now working. Currently it has fields for: Template name HTML file name Preview image Template category Template fields There’s still quite a bit of work left to do here, but at least the structure is finally in place. Template Categories & Fields One thing I didn’t want to do was create a completely separate form for every invitation type. Instead, I’m building a system where templates can be configured using categories and predefined fields. const templateCategories = [ { id : " wedding " , name : " Wedding " }, { id : " engagement " , name : " Engagement " }, { id : " birthday " , name : " Birthday " } .... ] const templateFields = [ { id : " eventTitle " , label : " Event Title " , type : " text " , category : " common " }, { id : " groomName " , label : " Groom Name " , type : " text " , category : " wedding " } .... ] Right now I’ve added categories for weddings, birthdays, engagements, housewarmings, baby showers and several other event types. The field system should make adding future templates a lot easier. Small UI Improvements I also spent some time cleaning up the page and added a footer. The site is slowly starting to look more like an actual product instead of a collection of pages. Next The next step is finishing the template creation page and making the field selection system fully functional. Once that’s done, adding new templates should be much faster than it is right now.
Devlog 6 - Template creation form In this 6h 44m, I made a lot of features but the main highlight was the work on the template creation form ( continuation of previous devlog) Story Time: Basically my project is a wedding invitation page generator. My website will have a lot of prebuild invitation template(HBS) for different different events So the point is different templates require different forms should be filled by the user. Therefore when the admin create different template, the admin should list the require fields for the form of the specific template. Problems faced: My thoughts was to make a prebuild list of fields, from that the admin should list them in specific order. Problem - 1 The first problem was there is no form element to do these. So i used a select element with a ‘Add’ btn. For the sorting, at first i used up/down button, but that wasn’t smooth. After researching I found sortable js. At first sortable js also was not smooth, I fixed that by removing some bootstrap classes from the tag. Problem - 2 The next problem I faced was I cant use required in the custom fields list maker, So I can’t make that field mandatory. Solution (simple) The solution was simple, I made a invisible <textarea required .....> , and add the list of fields to that in json string when the admin edited the list. Thank you for reading ❤️, Mrithul.
Continuing the writting of the first template for the site !!! basically my project is a invitation page builder, it needs a lot of custom template. | ▽ not complete yet
First template design completed !!! fully using Bootstrap , and some css
added a very very cool text area for entering description for each field completely build on bootstrap accordion check it out !!!
new knoledge unlocked: I can use : app . use ( ' /admin ' , requireAdmin , adminRouter ) instead of : app . use ( requireAdmin ) app . use ( ' /admin ' , adminRouter ) I know everybody knows this, but this is a knowledge to me
Added hackclub cdn to the project !!! At first it didn’t worked because of compatibly issue of new nodejs’s fetch and npm form-data module fixed using new build-in formData()
connected the admin only template creation form to the firestore AND also made the template cards load dynamically currently provided image is a placeholder This is admin page , only admin page have create template button
Researching on custom form builder On deep research on making a custom form builder form my each templates , I found : formeo, jquery form builder and survayJS
Switched from formeo to jquery form builder formeo doesn’t support many input types
Added delete template option for admin The delete option will delete the template from the database and also delete the thumbnail image stored in hackclub CDN
Added error messages in data submissions in rendered template form Added a 50 MB file size limit in file upload (for now only frontend checks are implemented, backend check is TODO).
Research: How to limit the total file size in a multipart/formData (Express.js) After many searches I found out that multer don’t support this I am planning to use Busboy directly
Handle multipart uploads with file size limits using busboy i want to limit the max total file upload to 50 MB, multer cant have this feature so I use busboy and wrote long long code to solve this problem code :
Handle multipart uploads with file size limits using busboy formidable ✓ In the last devlog I shared a very large code to limit max total requiest size using busboy. Yesterday , In a simple google search , the Google AI mode suggested me of Formidable previously idk formidable … So I learned about that , it made my code so tiny frontend logic was already there
Connected the form created using jquery forms to HackClub CDN My website is basically a site that have many templates for different kind of event. A user can select a template , this will redirect to a form. Each template have entirely different forms , each form is created by the Admin using a jquery form builder ui. Because these form structures are unknow to the server, the server dont know how much file input fields are there. so we cant set a limit on number of file input fields and per input size. So I set a 50 MB total upload limit using formidable before sending files to hackclub cdn. This makes the usage fair.
Added a option to write the template(HBS) and the form from frontend implemented: option to write the template(HBS) and the form from frontend hbs to CDN script 10 MB fields limit in template creation router (multer) Invitation total file size limit 50 MB (formidable) Invitation data processing and cleanup
added template and form rendering from Database
Reached initial working stage First working template added Added: render of hbs from cdn rendering of custom form from database
Added search option in templates Implemented using Fuse.js *images are placeholders
User experience improvement implemented: made the created invitation url return fron server to frontend removed unwanted console.log used for debugging made the “Get started” button in frontend functional Added: invitation link and copy button in invitation creation form submission page
Added ‘My invitations’ section in website Added My invitations section that shows the invitations created by that user. From here user can see the invitation, creation date, and user can also delete the invitation. Delete option will delete all files that are part of that invitation from the cdn, then delete the complete invitation from the db. And also added some minor fixes such as: webpage title issues added favicon etc…
Added confirmation for logout and Added redirect to the last visited URL in login Added redirect to the last visited URL in login Added confirmation for logout, and made the logout route a long random string
Added the pages such as About, privacy-policies etc… Added About, Privacy policies , Terms of service page in hbs and added the corresponding routers for it
Added README.md !! *Not comleted yet, no images and videos are added yet
Added demo video to the home page Updated README.md and also fixed many minor css and html issues
Fix: Chrome media hub staying active even when video stops fixed this by removing the src and loading the video again into chrome’s memory, this solves the problem .
Minor css fix removed many useless css code. Made it more good. not that the gradients are not generated by AI, instead it is generated by online CSS gradient maker. Don’t this that this is a AI generated/AI styled project. This site doesn’t have that much huge css to use AI. The Login with Google button is copied by some article in Medium. The gradient used in the home page Get Started button is custom made using CSS gradient generator The background image and the animated phone image is generated by Chatgpt. I don’t know whether this is contributing to the AI feel 🥲🥲😭😭 UPDATE: : By asking to shipwrights, they say that it was flagged and AI because it used AI generated images, which is not allowed. So i made it my self using canva, here it is:
full css and ui rework: Changed the background image Made the design and animation minimalistic updated the navbar and footer removed unwanted styling in css removed unwanted gradient from text made minimal footer
Some reworks readme updated added more gap in between the template card added the github link to the navbar changed some fonts in homepage and added some paragraph sections there
Minor security fixes as per GitHub security scan Inclusion of functionality from an untrusted source Client-side URL redirect using query in URL
Ships:
I made a website for creating digital invitation webpages by simply selecting a template and filling out a form. This can help reduce paper usage by decreasing printed inviation lol .. I faced many challenges during the development: Building the logic for creating different different forms for each and every templates Limiting the total file size in http request Building a UI for creating forms by Drag-and-Droping Couldn’t host in vercel because vercel blocks requests more that ~4 MB Admin centralized working (only admin can create templates, this ensures security) I am proud of dedecating 3 months to complete this project, without doing any other project. To run my project my project you will need firebase api key, and hackclub cdn api. But you can’t get the already created templates because those are stored in firebase.
I made a website for creating digital invitation webpages by simply selecting a template and filling out a form. This can help reduce paper usage by decreasing printed inviation lol .. I faced many challenges during the development: Building the logic for creating different different forms for each and every templates Limiting the total file size in http request Building a UI for creating forms by Drag-and-Droping Couldn’t host in vercel because vercel blocks requests more that ~4 MB Admin centralized working (only admin can create templates, this ensures security) I am proud of dedecating 3 months to complete this project, without doing any other project. To run my project my project you will need firebase api key, and hackclub cdn api. But you can’t get the already created templates because those are stored in firebase. what’s new in this ship 2 fixed some security vulnerability as per github code scan Added assets completely handmade with canva replaced many fonts in home page with cursive fonts added our mission section in the home page...
|
1793065675.9670563
|
1793152075.9670563
|
|
60311
|
Portfolio website by @louisevincent289 | Stardance
|
louisevincent289
|
1
|
19.0
|
15
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T14:36:26Z", "hours": 19.0, "multiplier": 1.27, "payout": 15, "blessing": "neutral", "text": "I made a website for a shopping company, it includes products and seperate pages for men, women and children. When you change the colour of a product, the images change.", "repo": "https://github.com/thomas-j-vincent/thomas-website", "demo": "https://thomas-j-vincent.github.io/thomas-website/"}]...
|
[{"post_id": 67405, "ts": "202 [{"post_id": 67405, "ts": "2026-09-13T14:34:37Z", "hours": 1.3114, "text": "I’ve finished off my project, adding images and creating other products to showcase the potential of the project."}, {"post_id": 67317, "ts": "2026-09-13T11:58:06Z", "hours": 17.3772, "text": "I finished the first page and started work on the individual portfolio pages"}, {"post_id": 64960, "ts": "2026-09-09T18:15:04Z", "hours": 0.2878, "text": "I’ve created the basic architecture required to run a website, and am deciding on a type of button to use"}]...
|
Title: Portfolio website by @louisevincent289 | St Title: Portfolio website by @louisevincent289 | Stardance
Devlogs:
I’ve created the basic architecture required to run a website, and am deciding on a type of button to use
I finished the first page and started work on the individual portfolio pages
I’ve finished off my project, adding images and creating other products to showcase the potential of the project.
Ships:
I made a website for a shopping company, it includes products and seperate pages for men, women and children. When you change the colour of a product, the images change....
|
1793055166.2664804
|
1793141566.2664804
|
|
60928
|
knight platformer by @VaMaT2_CZ | Stardance
|
VaMaT2_CZ
|
1
|
7.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T14:29:49Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I shiped my game im so exited about what the world things about it it was my first project now it is time to move on to another one", "repo": "https://github.com/VaMaT2/Super-GAME", "demo": "https://github.com/VaMaT2/Super-GAME/releases/tag/Games"}]...
|
[{"post_id": 67383, "ts": "202 [{"post_id": 67383, "ts": "2026-09-13T14:08:37Z", "hours": 1.8011, "text": "i added a new animations and coin counter and monsters"}, {"post_id": 65839, "ts": "2026-09-11T07:41:57Z", "hours": 4.8961, "text": "knight mario like platformer"}]...
|
Title: knight platformer by @VaMaT2_CZ | Stardance Title: knight platformer by @VaMaT2_CZ | Stardance
Devlogs:
knight mario like platformer
i added a new animations and coin counter and monsters
Ships:
I shiped my game im so exited about what the world things about it it was my first project now it is time to move on to another one...
|
1793055271.8566406
|
1793141671.8566406
|
|
54562
|
SiteScope AI by @Euge | Stardance
|
Euge
|
1
|
23.8
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T14:27:37Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hello, I made a project called SiteScope AI! It is an auditor for websites that gets raw JSON data from Google PageSpeed/Lighthouse and adds an AI (Gemini) layer, which basically describes every mistake on your website in understandable language and tells you how to fix it. This project was almost built by myself. I did the FastAPI backend, and the frontend is mostly my own ideas (80%), the other 20% was done with AI because I didn’t know what fonts and colors to use. I also did the deployment frontend is on Netlify, backend is on Nest (Stardance/Hack Club). What was difficult? Honestly, during building the backend I encountered a lot of bugs. One I’m proud I found: the AI explanation step was blocking, with no timeout, so a slow Gemini response could freeze the entire server for every user at once, not just one request. I found this by deliberately load-testing with 5 browser tabs at once, then fixed it by running it in a thread with a 20-second timeout. Later, the Nest container itself went down, and because of my limited knowledge of Linux I used AI (Claude Sonnet 5) to help me understand what was going on. Instead of just guessing it was my code, I tested the backend directly on the server (localhost) versus through the public domain, and proved the problem was on Nest’s side, not mine and later their own admin confirmed it was a platform-wide issue affecting all containers, not just mine. I also found a few bugs during testing for example, when the URL contained just underscores or random text like “not_a_url_at_all”, the frontend counted it as a valid URL and sent it to the backend anyway, wasting API calls before failing. I had to rewrite the URL validation logic in script.js to properly check it looks like a real domain first. Why I am still proud of my project? The main reason is that it still works even when the AI API is broken or times out, you still must to get a full audit with the technical description. The second reason is, I wrote earlier, the design was almost done by myself. What you should know before testing. I recommend for testing you use a light website with mostly basic HTML and CSS structure e.g. example.com. If you don’t know any test URL, here you are: example.com info.cern.ch httpbin.org sitescope-ai.netlify.app motherfuckingwebsite.com bettermotherfuckingwebsite.com text.npr.org ! If it says “failed to fetch”, try another one of these URLs or wait a few minutes, Nest might be repairing the backend containers. ! Don’t use e-shop or big brand websites like McDonald’s, Nike, Adidas, etc., because of the large amount of images the audit can take too long and time out…", "repo": "https://github.com/ich-bin-eugenius/sitescope-ai", "demo": "https://sitescope-ai.netlify.app/"}]...
|
[{"post_id": 75231, "ts": "202 [{"post_id": 75231, "ts": "2026-09-29T15:19:24Z", "hours": 5.8028, "text": "Alright guys, here we go… I don’t know if I can call this DEVLOG 11, because I didn’t add any new features, I just rewrote almost the entire frontend because it was kind of AI-generated. Sorry about that, but I still hope you like it…"}, {"post_id": 67341, "ts": "2026-09-13T12:42:29Z", "hours": 0.5553, "text": "The project is ready for shipping, I fixed a few bugs just before it. I hope you like it! :)"}, {"post_id": 66863, "ts": "2026-09-12T19:57:21Z", "hours": 1.6919, "text": "DEVLOG #10 - AI timeouts, Nest drama & almost shipping Today I fixed a pretty annoying issue with the AI part of SiteScope AI. Basically, if Gemini took too long to respond, it could make the whole backend freeze 💀. I added a 20s timeout and now the audit just falls back to the normal Lighthouse description if AI takes too long. Then Nest decided to have a little meltdown 😭. My container went down and SSH kept disconnecting. At first I thought I broke something, but apparently it was a problem on Nest’s side affecting multiple containers. I also found that heavier websites can take too long to audit, so for now there’s roughly a 30s limit. Finally, I finished the README and did some small UI fixes. So yeah… SiteScope AI is basically ready for a ship."}, {"post_id": 64475, "ts": "2026-09-08T22:03:05Z", "hours": 0.6392, "text": "DEVLOG #9 - Backend finally working Today I spent a bit less time on SiteScope AI than usual, but I finally solved one of the biggest problems so far - getting the backend properly hosted and connected. Claude Sonnet 5 helped me understand the Nest setup, especially the systemd service and how to make the backend accessible from outside the server. I also discovered that I had simply forgotten to set the target port 8000 in the Nest dashboard…🙌😭, thanks guys for reading bye :>"}, {"post_id": 63775, "ts": "2026-09-07T18:48:37Z", "hours": 4.1114, "text": "DEVLOG #8 - Frontend improvements & new ideas From September 2nd to 7th, I spent around 4 hours working on SiteScope AI. I mainly improved the frontend to make it feel less AI-generated and more like my own design. I also came up with new ideas for pages like About and Thanks, different themes, and a better project navigation system. I also started working on hosting the backend and tried Nest, a free hosting service from Hack Club. It didn’t work out yet, but I’ll keep working on it. Overall, a lot of frontend improvements, new ideas and some backend experiments this time."}, {"post_id": 59793, "ts": "2026-09-01T18:43:54Z", "hours": 2.2014, "text": "Devlog #7 - Phase 1 complete & Gemini prompt testing Today I finished Phase 1 by testing valid, invalid and slow URLs and fixing client-side URL validation to prevent unnecessary PageSpeed API requests. I also started Phase 2: designed and tested the Gemini prompt for generating explanation, why_it_matters and how_to_fix for each audit issue. The first AI outputs are working well, so I’m moving on to integrating this into the actual audit pipeline."}, {"post_id": 59196, "ts": "2026-08-31T21:03:12Z", "hours": 2.0469, "text": "Hello guys! Welcome to my 6th devlog! 🔥🙃 Today I finally made a big improvement to the frontend. I got the initial idea from the internet and combined it with my own design skills and AI to create something that fits SiteScope AI. I also finally figured out why I kept getting the “PageSpeed API daily limit reached” error, even though my 25,000-token quota was still available. Turns out I was running the backend from the wrong directory. 😭 I also started working on making the frontend more polished and attractive. That’s all for today! The frontend actually took much longer than the 2 hours shown here, since I didn’t log some of yesterday’s and the day before’s work. Btw, I’d really appreciate it if you checked out the video attached to this devlog! ❤️"}, {"post_id": 58439, "ts": "2026-08-30T21:10:27Z", "hours": 0.8844, "text": "DEVLOG #5 - Backend Fixes & Frontend Today I worked mainly on the backend, fixed several issues with the Google PageSpeed API, solved the API quota problem and added CORS so the frontend can communicate with the backend properly. I also started working on a better-looking frontend that should make SiteScope AI more attractive and easier to use… thanks for reading this devlog and watching that video."}, {"post_id": 57608, "ts": "2026-08-29T20:21:41Z", "hours": 0.6139, "text": "DEVLOG #4 - Connecting the Frontend 🚀 Today I spent about 30 minutes finishing the basic frontend structure and connecting it to the backend. What I did today: ● Connected script.js to the audit form ● Added a request from the frontend to /api/audit ● Added loading and error states ● Connected the frontend to the backend ● Deployed the frontend to Netlify The basic flow is now there: URL → Frontend → Backend → PageSpeed API → Results There is still a problem with the deployed version — currently I get: Error: Failed to fetch I haven’t fully solved the deployment/API setup yet, so the audit doesn’t work properly from the public website for now. If you are a bit interested in my project here is the url: sitescope-ai.netlify.app, thanks for visiting💗🔥, Eugene"}, {"post_id": 56893, "ts": "2026-08-28T21:51:44Z", "hours": 1.8739, "text": "DEVLOG #3 — Parsing, Error Handling & First Frontend Today I cleaned up the PageSpeed response and added basic error handling. The backend now: ● Extracts scores for Performance, SEO, Accessibility and Best Practices ● Lists detected issues with their title, description and severity ● Handles invalid URLs, timeouts and API errors ● Returns a simpler JSON response ● Works with the /api/audit endpoint Example response: { \"url\" : \"https://example.com\" , \"scores\" : { \"performance\" : 100 , \"accessibility\" : 96 , \"best-practices\" : 96 , \"seo\" : 80 }, \"opportunities\" : [] } I also started working on the frontend. The URL form and some basic CSS are now in place, including the Space Grotesk font. Next step: connect the form to the backend and display the audit results in the browser."}, {"post_id": 56209, "ts": "2026-08-27T21:13:18Z", "hours": 2.0622, "text": "DEVLOG #2 - First Working Audit Today I continued working on SiteScope AI and got the first real website audit working. The main goal was to connect the backend to Google PageSpeed Insights and turn its response into something easier to use. What I worked on today: Created the basic FastAPI backend Added the GET / endpoint Created the POST /api/audit endpoint Connected the backend to the PageSpeed Insights API Tested the PageSpeed API manually and explored its JSON response Created a parser to simplify the PageSpeed response Extracted Performance, SEO, Accessibility and Best Practices scores Added the main opportunities/issues to the response Created mock data and tested the parser Tested the complete /api/audit endpoint with curl Refactored the PageSpeed parser into a separate module Fixed a bug with query parameter serialization The endpoint can now receive a website URL and return its Lighthouse scores together with the main issues found on the website. For example, when testing it with example.com, the API returned the scores and detected issues such as a missing meta description, non-descriptive link text, a missing main landmark and a missing charset declaration. This is still only the backend foundation, but the main idea is finally starting to work. Next, I want to continue building the analysis pipeline and eventually use AI to turn the raw audit data into useful explanations and recommendations. Day 2."}, {"post_id": 55435, "ts": "2026-08-27T08:17:03Z", "hours": 1.1633, "text": "DEVLOG #1 - Starting SiteScope AI 🚀 Today I discovered Stardance by Hack Club, and it finally gave me the motivation to start a project I’ve wanted to build for a while: SiteScope AI. The idea is to build an AI-powered website auditor that can analyze websites and provide useful insights and recommendations. Before starting, I used AI to help me understand the basic architecture, technologies and components I would need. Then I got to work. What I did today: Created the GitHub repository Added a README.md and MIT License Cloned the repository locally Connected the project to Hack Club Stardance Registered it as a Software -> Websites project Created the initial project structure Added .gitignore and .env Created a Python virtual environment Split the project into backend and frontend Added the required API keys: PAGESPEED_API_KEY GEMINI_API_KEY Tested the API keys to make sure they work Fixed the Python interpreter and virtual environment configuration It’s still just the beginning, but the foundation is now ready. Next step: start building the actual website analysis pipeline. 🔥 This is only Day 1."}]...
|
Title: SiteScope AI by @Euge | Stardance
Devlogs: Title: SiteScope AI by @Euge | Stardance
Devlogs:
DEVLOG #1 - Starting SiteScope AI 🚀 Today I discovered Stardance by Hack Club, and it finally gave me the motivation to start a project I’ve wanted to build for a while: SiteScope AI. The idea is to build an AI-powered website auditor that can analyze websites and provide useful insights and recommendations. Before starting, I used AI to help me understand the basic architecture, technologies and components I would need. Then I got to work. What I did today: Created the GitHub repository Added a README.md and MIT License Cloned the repository locally Connected the project to Hack Club Stardance Registered it as a Software -> Websites project Created the initial project structure Added .gitignore and .env Created a Python virtual environment Split the project into backend and frontend Added the required API keys: PAGESPEED_API_KEY GEMINI_API_KEY Tested the API keys to make sure they work Fixed the Python interpreter and virtual environment configuration It’s still just the beginning, but the foundation is now ready. Next step: start building the actual website analysis pipeline. 🔥 This is only Day 1.
DEVLOG #2 - First Working Audit Today I continued working on SiteScope AI and got the first real website audit working. The main goal was to connect the backend to Google PageSpeed Insights and turn its response into something easier to use. What I worked on today: Created the basic FastAPI backend Added the GET / endpoint Created the POST /api/audit endpoint Connected the backend to the PageSpeed Insights API Tested the PageSpeed API manually and explored its JSON response Created a parser to simplify the PageSpeed response Extracted Performance, SEO, Accessibility and Best Practices scores Added the main opportunities/issues to the response Created mock data and tested the parser Tested the complete /api/audit endpoint with curl Refactored the PageSpeed parser into a separate module Fixed a bug with query parameter serialization The endpoint can now receive a website URL and return its Lighthouse scores together with the main issues found on the website. For example, when testing it with example.com, the API returned the scores and detected issues such as a missing meta description, non-descriptive link text, a missing main landmark and a missing charset declaration. This is still only the backend foundation, but the main idea is finally starting to work. Next, I want to continue building the analysis pipeline and eventually use AI to turn the raw audit data into useful explanations and recommendations. Day 2.
DEVLOG #3 — Parsing, Error Handling & First Frontend Today I cleaned up the PageSpeed response and added basic error handling. The backend now: ● Extracts scores for Performance, SEO, Accessibility and Best Practices ● Lists detected issues with their title, description and severity ● Handles invalid URLs, timeouts and API errors ● Returns a simpler JSON response ● Works with the /api/audit endpoint Example response: { "url" : "https://example.com" , "scores" : { "performance" : 100 , "accessibility" : 96 , "best-practices" : 96 , "seo" : 80 }, "opportunities" : [] } I also started working on the frontend. The URL form and some basic CSS are now in place, including the Space Grotesk font. Next step: connect the form to the backend and display the audit results in the browser.
DEVLOG #4 - Connecting the Frontend 🚀 Today I spent about 30 minutes finishing the basic frontend structure and connecting it to the backend. What I did today: ● Connected script.js to the audit form ● Added a request from the frontend to /api/audit ● Added loading and error states ● Connected the frontend to the backend ● Deployed the frontend to Netlify The basic flow is now there: URL → Frontend → Backend → PageSpeed API → Results There is still a problem with the deployed version — currently I get: Error: Failed to fetch I haven’t fully solved the deployment/API setup yet, so the audit doesn’t work properly from the public website for now. If you are a bit interested in my project here is the url: sitescope-ai.netlify.app, thanks for visiting💗🔥, Eugene
DEVLOG #5 - Backend Fixes & Frontend Today I worked mainly on the backend, fixed several issues with the Google PageSpeed API, solved the API quota problem and added CORS so the frontend can communicate with the backend properly. I also started working on a better-looking frontend that should make SiteScope AI more attractive and easier to use… thanks for reading this devlog and watching that video.
Hello guys! Welcome to my 6th devlog! 🔥🙃 Today I finally made a big improvement to the frontend. I got the initial idea from the internet and combined it with my own design skills and AI to create something that fits SiteScope AI. I also finally figured out why I kept getting the “PageSpeed API daily limit reached” error, even though my 25,000-token quota was still available. Turns out I was running the backend from the wrong directory. 😭 I also started working on making the frontend more polished and attractive. That’s all for today! The frontend actually took much longer than the 2 hours shown here, since I didn’t log some of yesterday’s and the day before’s work. Btw, I’d really appreciate it if you checked out the video attached to this devlog! ❤️
Devlog #7 - Phase 1 complete & Gemini prompt testing Today I finished Phase 1 by testing valid, invalid and slow URLs and fixing client-side URL validation to prevent unnecessary PageSpeed API requests. I also started Phase 2: designed and tested the Gemini prompt for generating explanation, why_it_matters and how_to_fix for each audit issue. The first AI outputs are working well, so I’m moving on to integrating this into the actual audit pipeline.
DEVLOG #8 - Frontend improvements & new ideas From September 2nd to 7th, I spent around 4 hours working on SiteScope AI. I mainly improved the frontend to make it feel less AI-generated and more like my own design. I also came up with new ideas for pages like About and Thanks, different themes, and a better project navigation system. I also started working on hosting the backend and tried Nest, a free hosting service from Hack Club. It didn’t work out yet, but I’ll keep working on it. Overall, a lot of frontend improvements, new ideas and some backend experiments this time.
DEVLOG #9 - Backend finally working Today I spent a bit less time on SiteScope AI than usual, but I finally solved one of the biggest problems so far - getting the backend properly hosted and connected. Claude Sonnet 5 helped me understand the Nest setup, especially the systemd service and how to make the backend accessible from outside the server. I also discovered that I had simply forgotten to set the target port 8000 in the Nest dashboard…🙌😭, thanks guys for reading bye :>
DEVLOG #10 - AI timeouts, Nest drama & almost shipping Today I fixed a pretty annoying issue with the AI part of SiteScope AI. Basically, if Gemini took too long to respond, it could make the whole backend freeze 💀. I added a 20s timeout and now the audit just falls back to the normal Lighthouse description if AI takes too long. Then Nest decided to have a little meltdown 😭. My container went down and SSH kept disconnecting. At first I thought I broke something, but apparently it was a problem on Nest’s side affecting multiple containers. I also found that heavier websites can take too long to audit, so for now there’s roughly a 30s limit. Finally, I finished the README and did some small UI fixes. So yeah… SiteScope AI is basically ready for a ship.
The project is ready for shipping, I fixed a few bugs just before it. I hope you like it! :)
Alright guys, here we go… I don’t know if I can call this DEVLOG 11, because I didn’t add any new features, I just rewrote almost the entire frontend because it was kind of AI-generated. Sorry about that, but I still hope you like it…
Ships:
Hello, I made a project called SiteScope AI! It is an auditor for websites that gets raw JSON data from Google PageSpeed/Lighthouse and adds an AI (Gemini) layer, which basically describes every mistake on your website in understandable language and tells you how to fix it. This project was almost built by myself. I did the FastAPI backend, and the frontend is mostly my own ideas (80%), the other 20% was done with AI because I didn’t know what fonts and colors to use. I also did the deployment frontend is on Netlify, backend is on Nest (Stardance/Hack Club). What was difficult? Honestly, during building the backend I encountered a lot of bugs. One I’m proud I found: the AI explanation step was blocking, with no timeout, so a slow Gemini response could freeze the entire server for every user at once, not just one request. I found this by deliberately load-testing with 5 browser tabs at once, then fixed it by running it in a thread with a 20-second timeout. Later, the Nest container itself went down, and because of my limited knowledge of Linux I used AI (Claude Sonnet 5) to help me understand what was going on. Instead of just guessing it was my code, I tested the backend directly on the server (localhost) versus through the public domain, and proved the problem was on Nest’s side, not mine and later their own admin confirmed it was a platform-wide issue affecting all containers, not just mine. I also found a few bugs during testing for example, when the URL contained just underscores or random text like “not_a_url_at_all”, the frontend counted it as a valid URL and sent it to the backend anyway, wasting API calls before failing. I had to rewrite the URL validation logic in script.js to properly check it looks like a real domain first. Why I am still proud of my project? The main reason is that it still works even when the AI API is broken or times out, you still must to get a full audit with the technical description. The second reason is, I wrote earlier, the design was almost done by myself. What you should know before testing. I recommend for testing you use a light website with mostly basic HTML and CSS structure e.g. example.com. If you don’t know any test URL, here you are: example.com info.cern.ch httpbin.org sitescope-ai.netlify.app motherfuckingwebsite.com bettermotherfuckingwebsite.com text.npr.org ! If it says “failed to fetch”, try another one of these URLs or wait a few minutes, Nest might be repairing the backend containers. ! Don’t use e-shop or big brand websites like McDonald’s, Nike, Adidas, etc., because of the large amount of images the audit can take too long and time out…...
|
1793008199.9646108
|
1793094599.9646108
|
|
61796
|
StarBot by @Helos | Stardance
|
Helos
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T14:23:21Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "everything went pretty smooth guide was clear everything perfect the only things i changed were the language in fact i used python but only because i dont feel so familiar with javascript and used railway to host it because im more familiar with it", "repo": "https://github.com/Helos-dev/starbot", "demo": "https://hackclub.enterprise.slack.com/archives/C0C1LDAGBCZ"}]...
|
[{"post_id": 67382, "ts": "202 [{"post_id": 67382, "ts": "2026-09-13T14:07:40Z", "hours": 0.4097, "text": "here are all the functions that the bot is capable to do right now"}]...
|
Title: StarBot by @Helos | Stardance
Devlogs:
her Title: StarBot by @Helos | Stardance
Devlogs:
here are all the functions that the bot is capable to do right now
Ships:
everything went pretty smooth guide was clear everything perfect the only things i changed were the language in fact i used python but only because i dont feel so familiar with javascript and used railway to host it because im more familiar with it...
|
1793058474.0630023
|
1793144874.0630023
|
|
61150
|
Pizza Tower Ware by @ar-bh | Stardance
|
ar-bh
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T14:13:07Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Pizza Tower Ware! for the Stardance “Make a WarioWare Game” mission it has left and right movement using arrow keys and A/D space or up arrow to jump click to click that’s all, the rest you can see by playing. enjoy!", "repo": "https://github.com/ar-bh/warioware-game-stardance-final", "demo": "https://arjun-bhumula.itch.io/pizza-tower-ware"}]...
|
[{"post_id": 67387, "ts": "202 [{"post_id": 67387, "ts": "2026-09-13T14:10:32Z", "hours": 0.9833, "text": "finally finished!! I changed the animations to be much better and actually match the movement now that there is an idle animation i made a few more levels, and quality of life changes boutta ship, hope i make it!"}, {"post_id": 67017, "ts": "2026-09-13T01:48:46Z", "hours": 2.4667, "text": "great working prototype! this had a lot of progress so here’s everything better camera to player controller added the 2 minigames, platformer collect and click collect pizza face collectible toppings from pizza tower collectibles a lot more that I don’t have the patience to say that’s all thanks"}, {"post_id": 66663, "ts": "2026-09-12T14:59:31Z", "hours": 1.2503, "text": "still not a solid game yet but lots of progress first I got rid of the static sprite and used some animations for peppino (in the video ignore the inaccurate hitbox i’ll probably fix it later) i also created the game timer node, the collectible node (i’m using pizza face idk why its not lore accurate but i dont care) and other stuff i hope this the process speeds up"}, {"post_id": 66560, "ts": "2026-09-12T12:16:31Z", "hours": 0.3667, "text": "created my project! started with choosing the team and importing a sprite. it isn’t much but I went with pizza tower 🍕 not much today but that’s all for this devlog bye"}]...
|
Title: Pizza Tower Ware by @ar-bh | Stardance
Dev Title: Pizza Tower Ware by @ar-bh | Stardance
Devlogs:
created my project! started with choosing the team and importing a sprite. it isn’t much but I went with pizza tower 🍕 not much today but that’s all for this devlog bye
still not a solid game yet but lots of progress first I got rid of the static sprite and used some animations for peppino (in the video ignore the inaccurate hitbox i’ll probably fix it later) i also created the game timer node, the collectible node (i’m using pizza face idk why its not lore accurate but i dont care) and other stuff i hope this the process speeds up
great working prototype! this had a lot of progress so here’s everything better camera to player controller added the 2 minigames, platformer collect and click collect pizza face collectible toppings from pizza tower collectibles a lot more that I don’t have the patience to say that’s all thanks
finally finished!! I changed the animations to be much better and actually match the movement now that there is an idle animation i made a few more levels, and quality of life changes boutta ship, hope i make it!
Ships:
I made Pizza Tower Ware! for the Stardance “Make a WarioWare Game” mission it has left and right movement using arrow keys and A/D space or up arrow to jump click to click that’s all, the rest you can see by playing. enjoy!...
|
1793055301.4177024
|
1793141701.4177024
|
|
29889
|
Blender by @rajaryan1492007 | Stardance
|
rajaryan1492007
|
2
|
38.65
|
222
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T13:53:45Z", "hours": 28.0, "multiplier": 11.24, "payout": 208, "blessing": "neutral", "text": "i contribute to blender more for giving support for Android . So mostly i wrote fallback in vulkan and some other things . it was hard for and many time i forget to log and devlog but that it soon u will see android support . ref https://projects.blender.org/blender/blender/issues/162559 https://projects.blender.org/blender/blender/pulls/163126 https://projects.blender.org/blender/blender/pulls/162820 https://projects.blender.org/blender/blender/pulls/163630 https://projects.blender.org/blender/blender/pulls/163398 and this my last ship after that i will turn 19 year old at 14 sept soo byye :)", "repo": "https://github.com/blender/blender", "demo": "https://github.com/rajaryan2007/blender.git"}, {"ship_num": 2, "ts": "2026-07-05T10:31:53Z", "hours": 10.0, "multiplier": 1.41, "payout": 14, "blessing": "neutral", "text": "i Don’t know how explain about this but simply i contributed to blender it take lot of time i st blender code when i st my another project game engine compare to o3de and engine blender feel little easier bcuz i was little familier from st so i st making engine taking refernece from it as to mostly what i do is with ai or without i first understand math etc bcuz blender have too math etc but i left the part module and crazyspace type things and focus more on eevee and rendering i know devlog is less bcuz there nothing to say my self i don’t feel like it too confussing but some after asking maintainer etc i was able make pr and some get merged link https://github.com/blender/blender/commit/c706f68c68789be7a0576e0df8509f2b8388be8a https://projects.blender.org/blender/blender/pulls/160821 https://projects.blender.org/blender/blender/pulls/160420 https://projects.blender.org/blender/blender/pulls/160382", "repo": "https://github.com/blender/blender", "demo": "https://github.com/rajaryan2007/blender.git"}]...
|
[{"post_id": 69004, "ts": "202 [{"post_id": 69004, "ts": "2026-09-16T06:26:49Z", "hours": 0.6486, "text": "make fallback of dynamic rendering"}, {"post_id": 66843, "ts": "2026-09-12T19:19:19Z", "hours": 5.7239, "text": "made dynamic rendering optional for old hardware"}, {"post_id": 59923, "ts": "2026-09-01T23:10:19Z", "hours": 2.7592, "text": "added fallback of multiview"}, {"post_id": 56470, "ts": "2026-08-28T07:49:32Z", "hours": 19.2197, "text": "add logicop fallback and shaderClipdistance fallback in blender for andirod"}, {"post_id": 22747, "ts": "2026-07-05T10:18:18Z", "hours": 0.3308, "text": "other pr that i made"}, {"post_id": 20961, "ts": "2026-07-02T18:10:52Z", "hours": 9.68, "text": "blender contribution first pr merged"}]...
|
Title: Blender by @rajaryan1492007 | Stardance
De Title: Blender by @rajaryan1492007 | Stardance
Devlogs:
blender contribution first pr merged
other pr that i made
add logicop fallback and shaderClipdistance fallback in blender for andirod
added fallback of multiview
made dynamic rendering optional for old hardware
make fallback of dynamic rendering
Ships:
i Don’t know how explain about this but simply i contributed to blender it take lot of time i st blender code when i st my another project game engine compare to o3de and engine blender feel little easier bcuz i was little familier from st so i st making engine taking refernece from it as to mostly what i do is with ai or without i first understand math etc bcuz blender have too math etc but i left the part module and crazyspace type things and focus more on eevee and rendering i know devlog is less bcuz there nothing to say my self i don’t feel like it too confussing but some after asking maintainer etc i was able make pr and some get merged link https://github.com/blender/blender/commit/c706f68c68789be7a0576e0df8509f2b8388be8a https://projects.blender.org/blender/blender/pulls/160821 https://projects.blender.org/blender/blender/pulls/160420 https://projects.blender.org/blender/blender/pulls/160382
i contribute to blender more for giving support for Android . So mostly i wrote fallback in vulkan and some other things . it was hard for and many time i forget to log and devlog but that it soon u will see android support . ref https://projects.blender.org/blender/blender/issues/162559 https://projects.blender.org/blender/blender/pulls/163126 https://projects.blender.org/blender/blender/pulls/162820 https://projects.blender.org/blender/blender/pulls/163630 https://projects.blender.org/blender/blender/pulls/163398 and this my last ship after that i will turn 19 year old at 14 sept soo byye :)...
|
1792997487.5994565
|
1793083887.5994565
|
|
61639
|
My own site! by @NavNav | Stardance
|
NavNav
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T13:02:48Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website, honestly just a website, could realy get colour had to get help, but finished but from now its me, myself and I, and nothing else", "repo": "https://github.com/NavNav1914/My-website", "demo": "https://navnav1914.github.io/My-website/"}]...
|
[{"post_id": 67349, "ts": "202 [{"post_id": 67349, "ts": "2026-09-13T12:55:51Z", "hours": 0.5114, "text": "Just did my own site, coding journey starts here"}]...
|
Title: My own site! by @NavNav | Stardance
Devlog Title: My own site! by @NavNav | Stardance
Devlogs:
Just did my own site, coding journey starts here
Ships:
I made a website, honestly just a website, could realy get colour had to get help, but finished but from now its me, myself and I, and nothing else...
|
1793058442.9655213
|
1793144842.9655213
|
|
17903
|
FurgenOS by @furgenramen | Stardance
|
furgenramen
|
1
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T12:35:35Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a very simple OS, and though it has very little to show, I am very proud of it. More features should be on the way soon (I might build a hardware project, though). I feel that Hackatime was a bit confusing, especially when using a codespace in VS code. I hope the features are cool and you guys can mess around on my site!", "repo": "https://github.com/furgenramen04/FurgenOS", "demo": "https://furgenramen04.github.io/FurgenOS/"}]...
|
[{"post_id": 67335, "ts": "202 [{"post_id": 67335, "ts": "2026-09-13T12:26:47Z", "hours": 0.6833, "text": "Planning to ship now! I have made a simple app, where if you click the “Messing Around” button, a random website gets opened. I also updated my README, and I think I’m ready to ship now. Here’s the list of all website the button can open and my JS for it:"}, {"post_id": 66570, "ts": "2026-09-12T12:30:45Z", "hours": 1.4156, "text": "After more than a month of not doing anything, I came back and finished my text-based app, Ronaldo quotes. I used other sources on the internet because I found that the Jam was a little confusing. On the right is my new app and on the left is the JS code for it. Btw, if anyone here knows how to use the H1, H2, H3, without all of the text being affected please lmk in comments."}, {"post_id": 41264, "ts": "2026-08-05T11:33:26Z", "hours": 2.0903, "text": "Finally finished the first half of Jam 4 (I know, I know, but I had exams, okay?). I have two windows, they both drag, open, close, and, on tap and on open, go on top of each other. I really shouldn’t be feeling this accomplished but I am. Here’s my code (JS) and my final result! BTW if any of you has any suggestions PLEASE lmk, I’d love it. Thanks for your time!"}, {"post_id": 31743, "ts": "2026-07-20T11:48:49Z", "hours": 0.5125, "text": "Cleaned up my code. That’s pretty much all for today, just organised my in-line CSS into class-based CSS, and here are screenshots of my new code:"}, {"post_id": 30512, "ts": "2026-07-18T04:38:09Z", "hours": 0.4942, "text": "Devlog #5 Almost (almost) finished Jam 3. The welcome window opens and closes properly, and the “Messing around” button opens the tab, while the wheel icon closes it."}, {"post_id": 30121, "ts": "2026-07-17T13:09:15Z", "hours": 1.9697, "text": "Almost done Jam 3, looking to fix the close button option. I’m trying to make the wheel image a close button for the welcome window, but I am tired and I need to sleep so I will make that later. Otherwise, everything is going well, and my WebOS is coming together. The “Messing Around” button is currently the open button for the welcome screen. (P.S. only 1 screenshot today because I am not in the mood to reopen VS code again {its past my bedtime!})"}, {"post_id": 28650, "ts": "2026-07-15T01:03:34Z", "hours": 1.7339, "text": "Hi again! After a week of troubleshooting and struggling with Hackatime, I have finally finished the second Jam of the WebOS tutorial 😭. I removed the Ronaldo part (temporarily) but he will come back once I figure out how to add clickable elements in the OS. (the goat will come back). I also made the OS look much slicker (in my opinion)."}, {"post_id": 25076, "ts": "2026-07-09T01:29:13Z", "hours": 1.23, "text": "Finished part 1 of the WebOS 1 tutorial! My website still looks pretty basic, like this. The other screenshot is all the code in VS code for the website."}, {"post_id": 8450, "ts": "2026-06-14T01:28:34Z", "hours": 0.3092, "text": "Just started the tutorial, here’s a quick screenshot of my progress so far."}]...
|
Title: FurgenOS by @furgenramen | Stardance
Devlo Title: FurgenOS by @furgenramen | Stardance
Devlogs:
Just started the tutorial, here’s a quick screenshot of my progress so far.
Finished part 1 of the WebOS 1 tutorial! My website still looks pretty basic, like this. The other screenshot is all the code in VS code for the website.
Hi again! After a week of troubleshooting and struggling with Hackatime, I have finally finished the second Jam of the WebOS tutorial 😭. I removed the Ronaldo part (temporarily) but he will come back once I figure out how to add clickable elements in the OS. (the goat will come back). I also made the OS look much slicker (in my opinion).
Almost done Jam 3, looking to fix the close button option. I’m trying to make the wheel image a close button for the welcome window, but I am tired and I need to sleep so I will make that later. Otherwise, everything is going well, and my WebOS is coming together. The “Messing Around” button is currently the open button for the welcome screen. (P.S. only 1 screenshot today because I am not in the mood to reopen VS code again {its past my bedtime!})
Devlog #5 Almost (almost) finished Jam 3. The welcome window opens and closes properly, and the “Messing around” button opens the tab, while the wheel icon closes it.
Cleaned up my code. That’s pretty much all for today, just organised my in-line CSS into class-based CSS, and here are screenshots of my new code:
Finally finished the first half of Jam 4 (I know, I know, but I had exams, okay?). I have two windows, they both drag, open, close, and, on tap and on open, go on top of each other. I really shouldn’t be feeling this accomplished but I am. Here’s my code (JS) and my final result! BTW if any of you has any suggestions PLEASE lmk, I’d love it. Thanks for your time!
After more than a month of not doing anything, I came back and finished my text-based app, Ronaldo quotes. I used other sources on the internet because I found that the Jam was a little confusing. On the right is my new app and on the left is the JS code for it. Btw, if anyone here knows how to use the H1, H2, H3, without all of the text being affected please lmk in comments.
Planning to ship now! I have made a simple app, where if you click the “Messing Around” button, a random website gets opened. I also updated my README, and I think I’m ready to ship now. Here’s the list of all website the button can open and my JS for it:
Ships:
I made a very simple OS, and though it has very little to show, I am very proud of it. More features should be on the way soon (I might build a hardware project, though). I feel that Hackatime was a bit confusing, especially when using a codespace in VS code. I hope the features are cool and you guys can mess around on my site!...
|
1793004727.71135
|
1793091127.71135
|
|
57835
|
GEngine OS by @govindrkumar | Stardance
|
govindrkumar
|
1
|
13.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T11:59:34Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "GEngine OS A webOS simulating an OS in browser. It has been created under stardance WebOS 1 mission . Tech stack used: HTML CSS Javascript Overview Features supports multiple window has start menu and a taskbar supports dragging of window Apps My Projects contains my repos Music can play audio files Sticky Notes write your notes Look Inspired by Windows 10, Uwuntu, Ubuntu….. My journey Learnt Javascript (list, array, arrow function, how to make a window draggable) Learnt z-index and grid display in CSS first site without Flask or Django. Future I will go for web os2 mission after this. I am trying to position this web os as replacament for my personal portfolio site . I will also create a 2D game engine in this after learning Canvas in future properly. I will learn CSS animations after this ship. Contribution Contribution to this repo are welcome through PR!! License This is listed under BSD 3-Clause License . One Last thing Thanks for reading!! Created by Govind….", "repo": "https://github.com/govindrkumar/GEngine", "demo": "https://gengineos.vercel.app/"}]...
|
[{"post_id": 67316, "ts": "202 [{"post_id": 67316, "ts": "2026-09-13T11:57:18Z", "hours": 0.3258, "text": "Devlog-11; Wrote README.md"}, {"post_id": 67296, "ts": "2026-09-13T11:29:48Z", "hours": 1.7989, "text": "Devlog-10; Hi. Today, I finished adding the playlist system to music app. Now, all the keys work. Then, I moved to My project app where I listed my notable repos. Here’s how it looks."}, {"post_id": 66515, "ts": "2026-09-12T11:05:52Z", "hours": 1.2536, "text": "Devlog-9; I have added property to get bigger when songs are added in playlist in my music app."}, {"post_id": 66361, "ts": "2026-09-12T04:50:10Z", "hours": 1.8717, "text": "Devlog-8; Hey Guys! Today, I worked on adding play, pause, increase speed in my music app in GEngine OS. It was tedious work adding each part manually into file and checking if it functions or not. I have added gif image change when song is played, stopped or normal. I will upload video of it’s working tomorrow or day after tomorrow after playlist system starts functioning properly. Currently, I am tired now."}, {"post_id": 65929, "ts": "2026-09-11T12:18:16Z", "hours": 0.8056, "text": "Devlog - 7 working on adding play, pause and forward button."}, {"post_id": 65755, "ts": "2026-09-11T03:20:18Z", "hours": 1.1836, "text": "Devlog-6; Refactored my code, created usable function."}, {"post_id": 63403, "ts": "2026-09-07T07:03:10Z", "hours": 0.6556, "text": "Devlog-5; Today, I added multiple copy function in javascript and started working on settings div."}, {"post_id": 61842, "ts": "2026-09-04T23:26:33Z", "hours": 1.2825, "text": "#Devlog-4; I add property of draggability and close function in my web os."}, {"post_id": 61268, "ts": "2026-09-04T03:47:28Z", "hours": 0.7081, "text": "Devlog-3; So, I created start menu behavior in my GEngine OS."}, {"post_id": 61151, "ts": "2026-09-03T22:27:42Z", "hours": 2.1094, "text": "Devlog-2; Today was fun, chose my OS default wallpaper, designed taskbar and partial start menu."}, {"post_id": 60902, "ts": "2026-09-03T15:40:04Z", "hours": 0.6883, "text": "Devlog-1; I have no idea about JS. I am going to start learning JS by making a game engine from scratch. But, for that I will first create an OS."}]...
|
Title: GEngine OS by @govindrkumar | Stardance
De Title: GEngine OS by @govindrkumar | Stardance
Devlogs:
Devlog-1; I have no idea about JS. I am going to start learning JS by making a game engine from scratch. But, for that I will first create an OS.
Devlog-2; Today was fun, chose my OS default wallpaper, designed taskbar and partial start menu.
Devlog-3; So, I created start menu behavior in my GEngine OS.
#Devlog-4; I add property of draggability and close function in my web os.
Devlog-5; Today, I added multiple copy function in javascript and started working on settings div.
Devlog-6; Refactored my code, created usable function.
Devlog - 7 working on adding play, pause and forward button.
Devlog-8; Hey Guys! Today, I worked on adding play, pause, increase speed in my music app in GEngine OS. It was tedious work adding each part manually into file and checking if it functions or not. I have added gif image change when song is played, stopped or normal. I will upload video of it’s working tomorrow or day after tomorrow after playlist system starts functioning properly. Currently, I am tired now.
Devlog-9; I have added property to get bigger when songs are added in playlist in my music app.
Devlog-10; Hi. Today, I finished adding the playlist system to music app. Now, all the keys work. Then, I moved to My project app where I listed my notable repos. Here’s how it looks.
Devlog-11; Wrote README.md
Ships:
GEngine OS A webOS simulating an OS in browser. It has been created under stardance WebOS 1 mission . Tech stack used: HTML CSS Javascript Overview Features supports multiple window has start menu and a taskbar supports dragging of window Apps My Projects contains my repos Music can play audio files Sticky Notes write your notes Look Inspired by Windows 10, Uwuntu, Ubuntu….. My journey Learnt Javascript (list, array, arrow function, how to make a window draggable) Learnt z-index and grid display in CSS first site without Flask or Django. Future I will go for web os2 mission after this. I am trying to position this web os as replacament for my personal portfolio site . I will also create a 2D game engine in this after learning Canvas in future properly. I will learn CSS animations after this ship. Contribution Contribution to this repo are welcome through PR!! License This is listed under BSD 3-Clause License . One Last thing Thanks for reading!! Created by Govind…....
|
1793005025.7768528
|
1793091425.7768528
|
|
58974
|
Terminator by @Hamzacross100 | Stardance
|
Hamzacross100
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T11:53:21Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Its Done After 2 Weeks", "repo": "https://github.com/Hamzacross/Terminator", "demo": "https://www.hamzacross100.online/projects/terminator"}]...
|
[{"post_id": 63603, "ts": "202 [{"post_id": 63603, "ts": "2026-09-07T15:09:21Z", "hours": 0.7156, "text": "Working On V1.0 The Main Working Version"}]...
|
Title: Terminator by @Hamzacross100 | Stardance
D Title: Terminator by @Hamzacross100 | Stardance
Devlogs:
Working On V1.0 The Main Working Version
Ships:
Its Done After 2 Weeks...
|
1793008155.543786
|
1793094555.543786
|
|
57944
|
MONOKEY-MANIA by @Rafay0Imran | Stardance
|
Rafay0Imran
|
2
|
13.0
|
95
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T11:11:34Z", "hours": 3.0, "multiplier": 13.65, "payout": 41, "blessing": "neutral", "text": "A website that only uses a SINGLE KEY! The most challenging part was learning the implementation of DOM using Brython and not messing up syntax in the “STRING FORMAT” which is so hard to debug", "repo": "https://github.com/rafay-imran-arch/MonoKey-Mania", "demo": "https://rafay-imran-arch.github.io/MonoKey-Mania/"}, {"ship_num": 2, "ts": "2026-09-03T20:17:39Z", "hours": 10.0, "multiplier": 5.43, "payout": 54, "blessing": "neutral", "text": "I made a web arcade style website that only uses a single key to perform and and load different applications. one these involve Morse Code , Rolling a die, Random Wiki-verse information.. etc", "repo": "https://github.com/rafay-imran-arch/MonoKey-Mania", "demo": "https://rafay-imran-arch.github.io/MonoKey-Mania/"}]...
|
[{"post_id": 67254, "ts": "202 [{"post_id": 67254, "ts": "2026-09-13T10:02:06Z", "hours": 3.0114, "text": "So after the previous submit I received some feedback. I’ll classify it into two categories the Good and the Bad obviously BAD: I don’t know what this does, I don’t understand it … GOOD: Nice idea for a website, can be improved further with subtle details and program expansion So first of all let me address the bad feedback (no offense): As I have mentioned before this project was made for another ysws program and got rejected hence I had to shift here (The og ysws owner gave me permission to submit to another) That’s why there is no informative motive behind this project like some of the projects in stardance rather its a side-quest type project without any intent to deliver/teach knowledge Basically think of those time-pass sites like Bored etc. Now the GOOD SIDE perhaps the only WHY I am improving this project a bit further. After reading the feedback I made a list of common things that needed improvement _First of all let me address this: I did not want to work on this project (for the time being) as I was so demotivated But the feedback said otherwise Yes I know this can be improved further and scaled up with more programs. But I am busy with other things and do not intend to it right now Secondly I have improved everything listed in the picture except for the Menu Instructions since I already have details for navigation in each program’s window/engine seperately Apart from that I discovered few other logical bugs regarding the overlapping of hold the bar for certain seconds in program does one thing whilst it’s also used for navigation making a logical error to carry out the intended process Improvements: MongoTyper custom dialogue!: I received feedback regarding this about the sentence being typed out too soon and stuff hence I worked on that plus also decided to add a CUSTOM PHRASE box instead of a preloaded one Morse Code: There were two errors in this first one being 10s clears the translation terminal and 10s also brought you make to menu hence Overlapping Key Bind Error (I’ll just name it this) After fixing that I found out that clearing the terminal didn’t work as intended… sure it did clear the terminal on sight but the previous buffer was still loaded and appeared once another code was typed. In short words the clear terminal wasn’t erasing anything just an illusion until next code is entered So I fixed that Coming Soon Project: Before this it had a title and I thought that it’ll work as a teaser to the upcoming program/game on the website but it backfired a bit People claiming that the project is unfinished etc etc.. But I had explicitly stated my reasons to make it a COMING SOON project THE BAR! Perhaps the most important and subtle detail that makes this program feel good is the addition of the Key press Bar making it easier for you to know how long you have pressed the bar and which key you are using"}, {"post_id": 61092, "ts": "2026-09-03T20:13:46Z", "hours": 10.395, "text": "I made this for another ysws program(soo demotivated after rejection). But yeah here’s how the idea came to be and my journey to make this. Initial Plan: To make a card highlight menu themed website that has options to launch different programs mainly first thought was making a Morse-code program and some space landing game (postponed) And I would only use a single key for menu control, launching the program and for in-program movement Ended Up: The design changed to more like key-caps design then cards.. Becoming a circus mania of different programs: Morse Course: Using time interval per key press to write Morse code Roll A Dice: Added a dice (d-6) rolling program WikiTap: Press the key and land in random place of the knowledge kingdom Typing Mongo: Press the key and watch a cat mongo smack the laptop ( I encoded a thank you message in there for the original ysws org but he rejected the project so… I cant say anything about that ) Landing CubeSAT: I intended to make a game about landing a cube-sat on a planet in space but since I was working on other stuff I had to postpone this I intent to further work on this maybe as a personal site or for another ysws Tech Stack Decisions: “Tony Stark was able to build this in a cave! With a box of scraps!” Yeah… But I am not Stark so here’s the thing I don’t know JavaScript…. So since I am comfortable with Python I used an alternate i.e Python’s web suit Brython and since I was actively working on a Pygame project hence this decision just so not to break the flow. If you know what I mean. Brython Flow: Brython allowed me to structure logic cleanly using python’s standard libraries while directly manipulating the browser DOM (Document Object Mode) But but but the main problems I faced where in Brython I’ll explained in the CHALLENGES down below. The Project workflow as a whole: The main backbone sits in index.html and is the host that allows programs to run which are coded in .py file (i.e using Brython). Active window listeners are placed that lookout for a key-down press and key-up and observes the time interval. Time Interval per press is used to determine the menu navigation and working in the programs (to each its own rules apply) CHALLENGES: Window listeners: Apparently the listeners were not working when I launched the program locally i.e on device through its original file hence I asked AI for help and after a few tries to solve it it still remained non-responsive and kept breaking the other code (Mind you I didn’t copy paste the code from AI….. He just later advised me to launch the code through a local server port) Brython Scope and Variable Hangs: Perhaps the most annoying part of all this was when you use Brython to implement html…. you literally have to code all the tags and stuff and manually indent the tags that are not even color code. You dont get auto-correction or not even an auto completion since all the html code is written inside strings And if you’d give me a penny for every time I messed up html set-up due missing ; or attributes/ class setups for the tags. I’d have several grands on me KEY LEANINGS AND TAKEAWAYS: DOM access via Brython API integration WHATS NEXT? Honestly so demotivated after my submission got rejected from another program even though I contested for little to no AI usage/slop. But I’ll think about working on the following: Make the CubeSAT game and integrate it into this Work on this as a personal site as it seems cool using a single key idea"}]...
|
Title: MONOKEY-MANIA by @Rafay0Imran | Stardance
Title: MONOKEY-MANIA by @Rafay0Imran | Stardance
Devlogs:
I made this for another ysws program(soo demotivated after rejection). But yeah here’s how the idea came to be and my journey to make this. Initial Plan: To make a card highlight menu themed website that has options to launch different programs mainly first thought was making a Morse-code program and some space landing game (postponed) And I would only use a single key for menu control, launching the program and for in-program movement Ended Up: The design changed to more like key-caps design then cards.. Becoming a circus mania of different programs: Morse Course: Using time interval per key press to write Morse code Roll A Dice: Added a dice (d-6) rolling program WikiTap: Press the key and land in random place of the knowledge kingdom Typing Mongo: Press the key and watch a cat mongo smack the laptop ( I encoded a thank you message in there for the original ysws org but he rejected the project so… I cant say anything about that ) Landing CubeSAT: I intended to make a game about landing a cube-sat on a planet in space but since I was working on other stuff I had to postpone this I intent to further work on this maybe as a personal site or for another ysws Tech Stack Decisions: “Tony Stark was able to build this in a cave! With a box of scraps!” Yeah… But I am not Stark so here’s the thing I don’t know JavaScript…. So since I am comfortable with Python I used an alternate i.e Python’s web suit Brython and since I was actively working on a Pygame project hence this decision just so not to break the flow. If you know what I mean. Brython Flow: Brython allowed me to structure logic cleanly using python’s standard libraries while directly manipulating the browser DOM (Document Object Mode) But but but the main problems I faced where in Brython I’ll explained in the CHALLENGES down below. The Project workflow as a whole: The main backbone sits in index.html and is the host that allows programs to run which are coded in .py file (i.e using Brython). Active window listeners are placed that lookout for a key-down press and key-up and observes the time interval. Time Interval per press is used to determine the menu navigation and working in the programs (to each its own rules apply) CHALLENGES: Window listeners: Apparently the listeners were not working when I launched the program locally i.e on device through its original file hence I asked AI for help and after a few tries to solve it it still remained non-responsive and kept breaking the other code (Mind you I didn’t copy paste the code from AI….. He just later advised me to launch the code through a local server port) Brython Scope and Variable Hangs: Perhaps the most annoying part of all this was when you use Brython to implement html…. you literally have to code all the tags and stuff and manually indent the tags that are not even color code. You dont get auto-correction or not even an auto completion since all the html code is written inside strings And if you’d give me a penny for every time I messed up html set-up due missing ; or attributes/ class setups for the tags. I’d have several grands on me KEY LEANINGS AND TAKEAWAYS: DOM access via Brython API integration WHATS NEXT? Honestly so demotivated after my submission got rejected from another program even though I contested for little to no AI usage/slop. But I’ll think about working on the following: Make the CubeSAT game and integrate it into this Work on this as a personal site as it seems cool using a single key idea
So after the previous submit I received some feedback. I’ll classify it into two categories the Good and the Bad obviously BAD: I don’t know what this does, I don’t understand it … GOOD: Nice idea for a website, can be improved further with subtle details and program expansion So first of all let me address the bad feedback (no offense): As I have mentioned before this project was made for another ysws program and got rejected hence I had to shift here (The og ysws owner gave me permission to submit to another) That’s why there is no informative motive behind this project like some of the projects in stardance rather its a side-quest type project without any intent to deliver/teach knowledge Basically think of those time-pass sites like Bored etc. Now the GOOD SIDE perhaps the only WHY I am improving this project a bit further. After reading the feedback I made a list of common things that needed improvement _First of all let me address this: I did not want to work on this project (for the time being) as I was so demotivated But the feedback said otherwise Yes I know this can be improved further and scaled up with more programs. But I am busy with other things and do not intend to it right now Secondly I have improved everything listed in the picture except for the Menu Instructions since I already have details for navigation in each program’s window/engine seperately Apart from that I discovered few other logical bugs regarding the overlapping of hold the bar for certain seconds in program does one thing whilst it’s also used for navigation making a logical error to carry out the intended process Improvements: MongoTyper custom dialogue!: I received feedback regarding this about the sentence being typed out too soon and stuff hence I worked on that plus also decided to add a CUSTOM PHRASE box instead of a preloaded one Morse Code: There were two errors in this first one being 10s clears the translation terminal and 10s also brought you make to menu hence Overlapping Key Bind Error (I’ll just name it this) After fixing that I found out that clearing the terminal didn’t work as intended… sure it did clear the terminal on sight but the previous buffer was still loaded and appeared once another code was typed. In short words the clear terminal wasn’t erasing anything just an illusion until next code is entered So I fixed that Coming Soon Project: Before this it had a title and I thought that it’ll work as a teaser to the upcoming program/game on the website but it backfired a bit People claiming that the project is unfinished etc etc.. But I had explicitly stated my reasons to make it a COMING SOON project THE BAR! Perhaps the most important and subtle detail that makes this program feel good is the addition of the Key press Bar making it easier for you to know how long you have pressed the bar and which key you are using
Ships:
I made a web arcade style website that only uses a single key to perform and and load different applications. one these involve Morse Code , Rolling a die, Random Wiki-verse information.. etc
A website that only uses a SINGLE KEY! The most challenging part was learning the implementation of DOM using Brython and not messing up syntax in the “STRING FORMAT” which is so hard to debug...
|
1792993997.1326652
|
1793080397.1326652
|
|
46998
|
Personal Portfolio Website by @silvonik | Stardanc Personal Portfolio Website by @silvonik | Stardance...
|
silvonik
|
2
|
11.0
|
66
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T10:12:05Z", "hours": 2.0, "multiplier": 2.33, "payout": 6, "blessing": "neutral", "text": "I made my own Personal Portfolio Website to showcase all of my complete projects, it took me about 25 days to build everything but it took a month entirely if we include me learning how to make a website. I only found out about Stardance halfway through the websites development so thats why there are so few devlogs. The most challenging part on making the project was the CSS and setting up the domains, I HATED the CSS because it takes so much time, but Im proud of the finished result of the website and im defnitely going to make more in the future. If you want to check the website out press the “try project” button, and if it doesn’t work search up edwardmare.com in your search engine.", "repo": "https://github.com/Silvonik/EdwardMare.github.io", "demo": "https://edwardmare.com"}, {"ship_num": 2, "ts": "2026-08-14T18:18:50Z", "hours": 9.0, "multiplier": 6.99, "payout": 60, "blessing": "neutral", "text": "I made my own Personal Portfolio Website to showcase all of my complete projects, it took me about 25 days to build everything but it took a month entirely if we include me learning how to make a website. I only found out about Stardance halfway through the websites development so thats why there are so few devlogs. The most challenging part on making the project was the CSS and setting up the domains, I HATED the CSS because it takes so much time, but Im proud of the finished result of the website and im defnitely going to make more in the future. If you want to check the website out press the “try project” button, and if it doesn’t work search up edwardmare.com in your search engine.", "repo": "https://github.com/Silvonik/EdwardMare.github.io", "demo": "https://edwardmare.com"}]...
|
[{"post_id": 67258, "ts": "202 [{"post_id": 67258, "ts": "2026-09-13T10:09:47Z", "hours": 1.6469, "text": "Added a new Project inside hardware called Macropad."}, {"post_id": 52540, "ts": "2026-08-22T18:18:24Z", "hours": 0.7622, "text": "Added a new Project inside hardware called Modded GBAs."}, {"post_id": 47065, "ts": "2026-08-14T18:03:36Z", "hours": 0.5789, "text": "Finished Last bits and pieces BUT I FINIALLY FINISHEDD!!!"}, {"post_id": 46829, "ts": "2026-08-14T11:00:52Z", "hours": 2.1508, "text": "Today I locked in and Finished all the project pages, it was pretty time consuming but im glad i finished all the writing. now i just need to do some finishing touches and im FINISHED!!!"}, {"post_id": 46483, "ts": "2026-08-13T18:34:53Z", "hours": 2.7186, "text": "Finished All the Games pages In Projects section and modified the home and fixed the footer"}, {"post_id": 46010, "ts": "2026-08-12T21:30:52Z", "hours": 2.2783, "text": "Almost Finished Gary’s Theft Auto 6’s page and added a footer to the website. As I’m working on the Gary’s Theft Auto 6’s page and building the design and layout of what every projects page will look like so after i finish this page it should get easier for the next ones."}, {"post_id": 45688, "ts": "2026-08-12T10:41:34Z", "hours": 0.8294, "text": "Fixed Mobile Bugs and Added More Pages To The Projects Section"}]...
|
Title: Personal Portfolio Website by @silvonik | S Title: Personal Portfolio Website by @silvonik | Stardance
Devlogs:
Fixed Mobile Bugs and Added More Pages To The Projects Section
Almost Finished Gary’s Theft Auto 6’s page and added a footer to the website. As I’m working on the Gary’s Theft Auto 6’s page and building the design and layout of what every projects page will look like so after i finish this page it should get easier for the next ones.
Finished All the Games pages In Projects section and modified the home and fixed the footer
Today I locked in and Finished all the project pages, it was pretty time consuming but im glad i finished all the writing. now i just need to do some finishing touches and im FINISHED!!!
Finished Last bits and pieces BUT I FINIALLY FINISHEDD!!!
Added a new Project inside hardware called Modded GBAs.
Added a new Project inside hardware called Macropad.
Ships:
I made my own Personal Portfolio Website to showcase all of my complete projects, it took me about 25 days to build everything but it took a month entirely if we include me learning how to make a website. I only found out about Stardance halfway through the websites development so thats why there are so few devlogs. The most challenging part on making the project was the CSS and setting up the domains, I HATED the CSS because it takes so much time, but Im proud of the finished result of the website and im defnitely going to make more in the future. If you want to check the website out press the “try project” button, and if it doesn’t work search up edwardmare.com in your search engine.
I made my own Personal Portfolio Website to showcase all of my complete projects, it took me about 25 days to build everything but it took a month entirely if we include me learning how to make a website. I only found out about Stardance halfway through the websites development so thats why there are so few devlogs. The most challenging part on making the project was the CSS and setting up the domains, I HATED the CSS because it takes so much time, but Im proud of the finished result of the website and im defnitely going to make more in the future. If you want to check the website out press the “try project” button, and if it doesn’t work search up edwardmare.com in your search engine....
|
1793000899.116906
|
1793087299.116906
|
|
13978
|
Roblox Minigolf by @ThatRandomMaker | Stardance
|
ThatRandomMaker
|
1
|
170.69
|
2416
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T09:33:14Z", "hours": 167.0, "multiplier": 15.65, "payout": 2416, "blessing": "neutral", "text": "I’ve made a minigolf game in Roblox studio, featuring 3 maps and 22 stages in total, with cosmetics that can be bought for your golf club or golf ball, and some nice QoL features like a music menu, or a hide UI hotkey In my opinion, the main challenging thing was building all the maps. I’m not a great map builder, so making even one map or all stages took a lot of time, plus taking on the task of making 3 maps for the first release was, admittedly, a not-so-thought-through idea. Of course, this doesn’t mean that there was just 1 challenge, this was just the main one for me. Please note: due to the Roblox guideline changes, you must have an account that is 16+ Facial Age Estimation or ID verified to play the game. This can only be changed if the game reaches 250 “active” players. There are alternatives, which is either setting up the game yourself in Roblox Studio (takes some time), or just by watching the small feature demo. These restrictions/alternatives are mentioned in the README. (written per default questions)", "repo": "https://github.com/ThatRandomMaker/Roblox-Minigolf", "demo": "https://www.roblox.com/games/11200475351/Minigolf"}]...
|
[{"post_id": 76096, "ts": "202 [{"post_id": 76096, "ts": "2026-10-02T09:52:34Z", "hours": 2.2314, "text": "Finished the first room in the new Factory map! What lighting style do you think is better? Realistic or soft? (shadowmap) Realistic is img 1-2, soft is 3-4 At the moment, there won’t be any minigolf courses, as I’d rather finish the building first. Also, I had a few new ideas for the game that may make it a bit more “immersive” to say the least.. Will experiment with them and post something in the future if it works out."}, {"post_id": 72599, "ts": "2026-09-23T09:50:33Z", "hours": 1.4561, "text": "After a few prototypes, (a lot) I’ve decided to make another map, which a factory/warehouse type of map. So far, I’ve made these props: Conveyor Structual beam Light Unloading zones At the moment, I’m not really sure how I’ll make the stages in the map, but I have an idea of making them more interactive (somewhat similar to the arcade map.) One small mention, the map will likely be in beta or not fully finished (when or if I ship again), as Stardance is likely going to end soon."}, {"post_id": 67234, "ts": "2026-09-13T09:16:00Z", "hours": 4.0808, "text": "FINALLY shipping! (after this devlog) After likely losing a few hairs here and there (/j) after these 3 (almost 3 and 1/2) months, I deem minigolf to be done. I’m kind of suprised myself that the project took so long. I believe that this, by far is the longest project I’ve ever made. During the process, I’ve learned A LOT more about studio and luau overall, which will definetly help make better games (with better implementations). I have to admit, coming closer to the end there was a bit of burnout, but the result, in my opinion, was definetly worth it. I also want to say thank you to everyone that has supported me and this project, it means a lot :) Since the last devlog, I fixed and updated the few rough edges left in the game, GitHub repository and Stardance which are: Stardance: Making a new banner (old one didn’t even match the style of the game anymore) Adding a demo link & github repository link GitHub repository: Made a README that, in my opinion, is nice. It follows the requirements that the shipping guide/README guide Stardance mentions (controls, images, demo link, features, etc) Game: Changing the teleport screen to one that blends in during teleport Changed badges for new ones (icons) and requirements (now 1, 10 and 22 stages) Made the maze in stage 8 (grass map) harder to complete, was too easy before Changed all loading music Removed the funFacts moduleScript (not needed anymore) Stage 9 sign fixed to show status for Arcade_9 instead of Arcade_3 Updated desertMap particles to be thinner Changed loadUI to have fake shadow text instead of a thick UIStroke"}, {"post_id": 65465, "ts": "2026-09-10T16:40:51Z", "hours": 1.6436, "text": "Desert map complete! Well.. that was way faster compared to the other maps, which makes sense due to a desert.. well, being a desert. Anyway, now that the main game is done*, I’ve also made thumbnails and an icon for the game. I still need to make a README and a proper description for the game, to ship , of course. *Will likely rework the tutorial gui a bit and the ui shown when teleporting between maps Anyway, look forward to seeing a few more updates soon, as the aforementioned updates/additions shouldn’t take a while"}, {"post_id": 64885, "ts": "2026-09-09T16:18:59Z", "hours": 1.3189, "text": "Started work on the “Desert” map. All stages are now built! There are only 5 stages due to school taking most of my time, as usual. (and, there’s already 2 other maps in the game, so that’s that)"}, {"post_id": 64261, "ts": "2026-09-08T15:10:07Z", "hours": 8.0694, "text": "Arcade map complete! New: the outside has now been fully finished (instead of just being a baseplate) Smaller changes/additions: the arcade map now has seats , shapes on the floor and ambiance zones. As the second map is done, I’m getting closer to (finally) shipping this project, and (hopefully) getting good enough reviews to get my goal from SD. The “Desert” map will likely be a bit shorter compared to the arcade map (or even grass map, undecided.), as I don’t have that much time anymore due to school starting."}, {"post_id": 61466, "ts": "2026-09-04T12:15:21Z", "hours": 10.2056, "text": "Arcade map update The indoor area is close to being finished! It still, of course needs a few things to be completed (for example, the food area, filling the empty space, etcetera.) Next step is, of course, the outdoors! I assume it shouldn’t take as long to make as the interior was, but who knows Another thing the game still needs is ambiance zones. (and a new ambiance sound for the indoors, of course) I’m thinking of implementing this with just 2 parts for the indoors and outdoors, which should do the trick. Every day this project is (hopefully) coming a bit closer to being shipped, but progress will slow down a bit due to school starting. In an ideal situation this’ll likely be shipped in a week, or atleast I hope to get it sort-of-ship ready by that time."}, {"post_id": 54531, "ts": "2026-08-25T15:39:57Z", "hours": 4.0231, "text": "Arcade Machines They have interactable buttons (which do nothing, except move up and down) Nothing else to say about them, really.. Changes/additions: Changed song2 (main menu) due to likely being made by AI (cover seems to be aigen) Light mode setting now also changes the main menu Changed buttonFrame in-game to have wrapper frames, in result being affected by the UIListLayout, and now they don’t clip together when using smaller screens, but they can still be animated."}, {"post_id": 51588, "ts": "2026-08-21T11:08:56Z", "hours": 8.1239, "text": "Overhauled main menu GUI including new songs and animations! Demo is in the attached video as usual! So, I’ve spent a bit of time reworking the main menu , since the old one looked “temporary” instead of finished. In my opinion, the result seems to be pretty nice . I’ve made/added/reworked: Esentially every menu New animations when moving pages or when going in-game Added hover effects for buttons Icons for the main buttons Added fake shadows to text instead of the bad-looking UIStroke like before Added image backgrounds Replaced (most) old songs! (song 1, song 3-5) It still isn’t fully finished, as I need to implement a light mode for it, but otherwise it’s fully functional! When light mode for the main menu and (maybe) loadUI is done, the focus will likely shift back to building the arcade map. Every time I test the game I somehow find bugs on accident, whoops! Anyway, there were a “few” fixes/updates that were made during development of this overhaul: Fixed spinnyCamera (script) to not repeat points Updated generateNumber for spinnyCamera (script) to go through all the points instead of randomly pick one and look repetitive Fixed autosaveUI appearing in the main menu Fixed hideUIHotkey setting (a lot of things which I won’t describe as this post isn’t meant to be a wall of text) Fixed mainMenuButton UIScale bug by resetting UIScale on click Updated both cameraFolder(s) to be models instead of folders, with ModelStreamingMode to be set to Atomic (fixes delay or infinite yielding on slower devices) Updated mainMenuUI image background transparency to 0.5 for settingsFrame, cameraModeFrame and creditsFrame Updated hideHotkey setting textColor3 when text is “Set Keybind” and added UIPadding to the button for text not to clip Fixed soundLogic volume bug that didn’t reset audio volume when going back to the main menu, in result making the song silent Updated soundLogic to fade in song volume instead of immediately start playing it at full volume And a lot more… (these are just ones found after the overhaul)"}, {"post_id": 48935, "ts": "2026-08-17T14:30:42Z", "hours": 4.1728, "text": "New camera mode for the main menu! Demo is in the video! Before remaking/overhauling the main menu UI into light/dark mode (and, to look nice, of course), I’ve decided to rework the camera as it’s a bit of a weak point in the menu. It features: Camera sway Camera switching between points 15 different points for the camera Now, this has also reminded me that the main menu needs a little bit different of a song selection, as drum and bass for a gentle camera sway obviously doesn’t work. Miscellanous changes/fixes: Flying trees fixed statsGui (naming fix soonTM) bgcolor and background transparency changed in light mode to that of the old UI."}, {"post_id": 48115, "ts": "2026-08-16T12:28:38Z", "hours": 9.935, "text": "In-game UI revamp is complete! *and a few miscellaneous fixes have been made The settings menu has been revamped to add the light mode setting, now featuring page 1 and 2, and a few other settings which are currently in progress of being made. In my opinion, light mode looks decent but I still prefer dark mode. A new setting that is still a bit of a work in progress, but mostly finished is a hide UI hotkey , which as the name states, hides ui (in-game only). I still need to implement that the setting saves, but overall it works just fine. It’s made to only apply a keybind if you’re playing on PC, though. Fixes: autosaveUI loading/saving icon was still spinning when not visible. Fixed by seeing if the frame is actually visible (instead of if the frame exists, small typo) Shadow button now just changes immediately instead of waiting for the server to change the variable, now it just fires the remoteEvent only to save the setting autosaveUI UIstroke clipping fixed by changing it to apply inner instead of outer Tree sway intensity has been changed to be a bit lower, otherwise it’d look unnatural. Tree pivots fixed to be on the bottom for tree sway (this was a pain) Tree pivot issues: Changing tree pivots manually always broke for some reason. It took a few hours to fix them, then when I dragged the trees down it reset them. Upon pressing undo the pivots were still reset, not like they were before. Then, I tried fixing them without dragging anything, and the next time I opened studio it reset again. I found that ctrl+l may work, but that didn’t work either. Had to end up cloning everything over again, which somehow has made the shadows more intense in the dense tree areas, even though nothing changed between the two. This was NOT fun When writing this devlog, I found out that the oak trees have decided to fly in the air, so that’s great"}, {"post_id": 41247, "ts": "2026-08-05T10:30:05Z", "hours": 9.6728, "text": "UI Revamp (W.I.P) I’ve started reworking the main UI for the game because well.. the old one is to say the least - not good. So far I’ve reworked basically everything in-game (except the tutorial, but it won’t be reworked anyway as it can only be seen one time) I’ve also experimented a bit with hover tweens (button getting larger on hover) and sound effects, which have been implemented now. Another thing I’ve experimented a bit with is viewport frames , which are now used in the shop to show golf balls and clubs/“sticks” spinning. I’d want to possibly implement a “Are you sure you want to buy (x) item for (x) amount” in the shop, but that’s not planned at the moment. Things still unfinished that I want to complete (for UIs): Setting to enable/disable dark mode Light mode UI (as at the moment it’s dark mode only) Sound changes: “song2” in the main menu has been replaced due to it being striked by Roblox (not sure why!) Sound in the tutorial UI before accepting/declining the tutorial has been changed (same issue)"}, {"post_id": 37696, "ts": "2026-07-30T16:22:40Z", "hours": 4.7486, "text": "Every stage in the Arcade (map) has been built! The arcade now consists of 9 stages in total! New thing is that some are a bit more.. interactive , and a few are a bit difficult or tedious .. to say the least. (example of changing stages the attached video) Now that the stages are done, the game is inching a bit closer to completion! Now, of course, there may be ~15 or more things to still complete in the roadmap , but any progress is great. You may (or may not) be wondering how I made all of these in 4 hours. Well, I only have one explanation. I uhh… forgot to enable the plugin after making something else. Oops! (factory gambler prototype) Anyway, during this time a few small misc changes have been done: stageLogic (new script) has been added to well.. control the stages. (Stage 5, 7 and 9.) Shop UI trail naming has been changed a little. Blinking activity on stage signs has been removed. Note: Video player in SD is bugged. You have to click on the devlog, then go and click on the video for it to play."}, {"post_id": 35256, "ts": "2026-07-26T15:40:53Z", "hours": 8.5958, "text": "Hello again! I’ve started working on the arcade map, as the grass map is pretty much complete (just need to fix the ui a bit) I’ve decided to rewrite the playSound script a bit to not be hardcoded and play a different sound (depending on what string is received from the remoteEvent) instead of creating a remoteEvent and a new script for each one For example, now it can play either the golfhole sound or the sound for the ball disappearing in stage 2. Also, for the new automated door, I’ve experimented a little with spatial-ish sound. Turns out it’s really easy (for what I need, atleast) So far I’ve made a few things in-game and outlined a few ideas and a roadmap. Currently built: First three stages (which are glow-in-the-dark!) mostly complete parking lot Front of the building (although unfinished) A road leading up to the parking lot with a small grass patch. Automated door There may not be as much devlogs now, but the game is still in development!"}, {"post_id": 30623, "ts": "2026-07-18T10:46:31Z", "hours": 6.6422, "text": "Devlog 7 Additions: Grass map is now complete! Added lamp scenery to the stages, so you can actually complete them during the night Tutorial is complete with music! Shop UI now has shadows behind the buttons Added an invisible hitbox extension to the golfstick (mainly fixes issue, although still may need to switch to r6 due to animation packs) UI with stats (Cash, stages won) and sounds + cash counting up/down The tutorial now has animations for hitting the ball Changes: Tutorial made more visually similar overall First tutorial animation changed to: Move the golfstick not as far back/forward Move the golfstick a bit faster when hitting the ball Tutorial second animation changed to: Not rotate the golfstick as far (60 degrees instead of 90) Fixes: Stats UI centering on screen Before starting to work on the next map which is the Arcade, a few other settings will be added to the settings menu. Music UI may also change."}, {"post_id": 27248, "ts": "2026-07-12T17:13:40Z", "hours": 10.0919, "text": "Small update/Devlog 6 New additions: A tutorial has been added and is fully working! (still needs sounds but otherwise fully complete) Main menu disallows the player to join the Arcade and Desert map if they haven’t completed the tutorial yet. Map scenery is done! Only need the stages now A boost pad has been added (and a golf ball loop will be made!) Colorcorrectioneffect has been added to make the game brighter in terms of colors instead of dull. Fixes: Trees were optimized a little in blender (the fir tree originally had 6.6k faces when I opened the file.. oof) Renderfidelity on leaf parts for trees was changed to automatic (otherwise the trees would look like twigs from far away) Lights turn off when daytime cycle setting gets turned off Daytime cycle script fixed to turn off after turning off the nighttime setting Changes: Lighting from invisible walls on stages removed (will use lights that the player can see instead) Main menu UI has been changed to have shadows on the buttons. Main menu UI text also has a “manual” shadow on the “Choose your destination!” text UIStroke on stage signs is now a bit thicker (text is easier to read) Need to add/fix: UI that shows your current leaderboard stats instead of the default one Arm swinging the golfstick when moving with it (will probably either switch to R6 or just make an invisible hitbox for the tool) Note: Ignore the last map building update. The upload system completely broke for me. I can’t add an attachment to the devlog (so I can’t edit it) and deleting it just results in an error."}, {"post_id": 25189, "ts": "2026-07-09T08:12:53Z", "hours": 21.9158, "text": "Map development update #2 I’ve developed the map and it’s outer scenery a lot , although I’m running into optimization regarding te trees. (haven’t worked on a lot of stages though, only added the 4th one) Maybe the tree has a lot of vertices and I could somehow optimize it in blender? If so, that could be the main factor why the game ran better with less trees. Sunrays, bloom and a shorter range detpth of field have been added And a small experiment for a tutorial cutscene has been added too. In the process of this “devlog” I’ve also lost 11h of work Also, a new loading screen has been added and the one from TP has been fixed!"}, {"post_id": 19276, "ts": "2026-06-30T15:27:41Z", "hours": 4.4606, "text": "Map development update I’ve been working on a few ideas recently and have been attempting to build something “decent”. With a bit of trial and error so far I’ve made A tree And 3 stages 🤞 Perfect development pace, isn’t it? Anyway, here are the images showing stages and the tree."}, {"post_id": 17522, "ts": "2026-06-28T10:34:21Z", "hours": 10.4989, "text": "Small update/Devlog 5.5 I’ve been working on a few things for the game before starting to build the map and in result wanted to share these. Changes: “New” spawnPad and clearBall models, both now display their cooldowns with text and colors (locally for the player) I’ve replaced the low quality music in the main menu and added a “few” more songs, instead of just 11 songs now the game has.. 87! Now the main menu is also controlled by one script only, instead of having one in each button (in result also making porting easier to the other places) Also, the side buttons have been redesigned! Now they have a collapse menu button, and a button for returning to the main menu. This is so that more of the screen is available for mobile players (and a bit of the screen on PC, too). Returning to the main menu will be useful for example, if the player completes every stage in the Grass “destination”/Environment and wants to continue to the next one. Also the music UI has been fixed to work on 4K (didn’t properly implement scale on the buttons) And, a very special thing in my opinion is that the shop is finally complete ! Consisting of golf balls, trails, effects and different golf clubs (for a visual representation, go to the video after reading this post) The Golf club preview image on the tool changes per the equipped cosmetic too!"}, {"post_id": 15173, "ts": "2026-06-24T17:30:12Z", "hours": 10.3753, "text": "Devlog 5! New fixes and additions also shown in the video Features: Parts now spin the same speed at any fps, and one main script is now controlling them all using CollectionService The GolfStick now has customization added in the shop! Autosave has been added (saves every 60sec with visual UI) Completed levels and main menu settings get saved Main menu now has transitions! Fixes: Shop and music menu now finally properly scale on ALL resolutions! Shop buttons fixed with scale instead of sizing Disabled the back button when attempting to teleport to a different place Lights are fixed for the nightTime setting (didn’t turn on/off before) Ambiance now plays with the nightTime setting on A saved table is now used instead of searching for lamp parts each time the alpha tween runs (dynamic lighting on/off tween), in result saving performance. Fixed golf ball trail and effect visibility (now you don’t see other player trails and effects, which reduced visibility before.) Main menu play button fixed to not start volume fade out from volume 1, instead now uses the current volume of the sound Commented out debug prints that aren’t needed anymore (kept incase something breaks though) Fixed saves when altf4-ing from the game or the server shutting down. PlayerRemoving and BindToClose double saving upon shutdown Still need to replace: Placeholder images and items in the shop UI. After that, time to start building!"}, {"post_id": 11863, "ts": "2026-06-19T09:53:37Z", "hours": 8.5456, "text": "Devlog 4 fixes and additions New additions and fixes also shown in the video Features: Added badge rewards on milestones (5 badges so far, 1-1000 stages won) Setting for daytime cycle in main menu Dynamic lighting system Replaced placeholder images in the main menu (main menu is fully complete now) Seperate play UI instead of one button Spinning parts Loading screen Day and night ambiance Fixes: Dynamic lighting fixed to not depend the animation on ClockTime, instead make a tween and play it in a certain time range. Dynamic lighting fixed to not read ClockTime every time it changes (inefficient) Teleport handler fixed to handle any errors with servers and re-enable the menu incase of an unsuccesful teleport. Music UI fixed to show volume slider properly (not to combine the button to stop the current song playing in the same line) Implemented proper join song rng (otherwise it’d usually pick the first or the 4th song) Credit menu scaling Needs fixing: Shop and music menu scaling on 1440p screens (Credit to ShootingCat for finding this bug, since I don’t have a 1440p monitor) Disabling the back button when attempting to teleport to a different place When enabling night time, to turn the lights on, since the current dynamic lighting system only checks 2 timeframes, and doesn’t turn on otherwise. Still need to add/replace: Replace placeholder items and images in the shop frame Adding customization options for the golf club (or as it’s named, golfstick) 3. Finally start building the map (if nothing else comes up that needs fixing, or another idea that needs to be implemented)"}, {"post_id": 10585, "ts": "2026-06-17T12:07:24Z", "hours": 7.51, "text": "Devlog 3, game additions and hotfixes New additions shown in the video Additions: Implemented most of the main menu. Includes: Credits, settings (shadows and night time) Camera spinning around a specific (target) part for main menu Button to stop current song in the music menu. Replaced placeholder images and sounds in the music menu Spinning parts using tween(s) Fixes: Menu proper scaling for devices Player input and backpack UI disabling when in main menu Shop has an error sound (instead of purchase sound) when not having enough money for an item. Added default/none options to the shop for disabling trails and effects. Still need to add: Badge rewards on a milestone (changed from reward per stage) Volume slider or manual volume entering for the music menu Replacing placeholder items and images in the shop frame Images for the buttons, separate play UI in the main menu"}, {"post_id": 9284, "ts": "2026-06-15T16:15:08Z", "hours": 6.1644, "text": "Devlog 2, a lot has changed! Project demo available in the video Features: Shop UI has now been fully implemented and saving works Golf balls are now customizable by buying cosmetics from the shop (with in-game cash), cosmetics consist of golf ball colors, trails and effects Music UI has been added to the game for listening songs during gameplay Now there was one bad thing, which is that I somehow accidentally deleted the whole shop UI and had to remake it since autosave (of course) had to save in that exact moment.. Still need to implement: Badge rewards when winning a stage Main menu with setting(s) Spinning and moving parts (for unique stages) Volume control for music UI Replacing placeholder sounds in the music frame Replacing placeholder items and images in the shop frame Adding materials as a customization option for golf balls"}, {"post_id": 7945, "ts": "2026-06-13T07:59:58Z", "hours": 6.6408, "text": "Hello, Minigolf! Implemented the core mechanics for the game to work which are: Custom collisiongroups to prevent griefing (for example, your golf ball hitting one that’s owned by another player, or the golf club hitting the ground making it hard to play) Transparency on different clients, to know which golf ball you own Working goal with a sound effect and tween to fade out the ball before destroying it Side mechanics added: Barebones datastore implementation, now rewards cash and golf hole scored/won UI test for music selection menu and shop (to get trails, custom golf ball colors, etc), full implementation soonTM Still working on to implement: Working shop with equippable cosmetics Working music selection Main menu"}]...
|
Title: Roblox Minigolf by @ThatRandomMaker | Stard Title: Roblox Minigolf by @ThatRandomMaker | Stardance
Devlogs:
Hello, Minigolf! Implemented the core mechanics for the game to work which are: Custom collisiongroups to prevent griefing (for example, your golf ball hitting one that’s owned by another player, or the golf club hitting the ground making it hard to play) Transparency on different clients, to know which golf ball you own Working goal with a sound effect and tween to fade out the ball before destroying it Side mechanics added: Barebones datastore implementation, now rewards cash and golf hole scored/won UI test for music selection menu and shop (to get trails, custom golf ball colors, etc), full implementation soonTM Still working on to implement: Working shop with equippable cosmetics Working music selection Main menu
Devlog 2, a lot has changed! Project demo available in the video Features: Shop UI has now been fully implemented and saving works Golf balls are now customizable by buying cosmetics from the shop (with in-game cash), cosmetics consist of golf ball colors, trails and effects Music UI has been added to the game for listening songs during gameplay Now there was one bad thing, which is that I somehow accidentally deleted the whole shop UI and had to remake it since autosave (of course) had to save in that exact moment.. Still need to implement: Badge rewards when winning a stage Main menu with setting(s) Spinning and moving parts (for unique stages) Volume control for music UI Replacing placeholder sounds in the music frame Replacing placeholder items and images in the shop frame Adding materials as a customization option for golf balls
Devlog 3, game additions and hotfixes New additions shown in the video Additions: Implemented most of the main menu. Includes: Credits, settings (shadows and night time) Camera spinning around a specific (target) part for main menu Button to stop current song in the music menu. Replaced placeholder images and sounds in the music menu Spinning parts using tween(s) Fixes: Menu proper scaling for devices Player input and backpack UI disabling when in main menu Shop has an error sound (instead of purchase sound) when not having enough money for an item. Added default/none options to the shop for disabling trails and effects. Still need to add: Badge rewards on a milestone (changed from reward per stage) Volume slider or manual volume entering for the music menu Replacing placeholder items and images in the shop frame Images for the buttons, separate play UI in the main menu
Devlog 4 fixes and additions New additions and fixes also shown in the video Features: Added badge rewards on milestones (5 badges so far, 1-1000 stages won) Setting for daytime cycle in main menu Dynamic lighting system Replaced placeholder images in the main menu (main menu is fully complete now) Seperate play UI instead of one button Spinning parts Loading screen Day and night ambiance Fixes: Dynamic lighting fixed to not depend the animation on ClockTime, instead make a tween and play it in a certain time range. Dynamic lighting fixed to not read ClockTime every time it changes (inefficient) Teleport handler fixed to handle any errors with servers and re-enable the menu incase of an unsuccesful teleport. Music UI fixed to show volume slider properly (not to combine the button to stop the current song playing in the same line) Implemented proper join song rng (otherwise it’d usually pick the first or the 4th song) Credit menu scaling Needs fixing: Shop and music menu scaling on 1440p screens (Credit to ShootingCat for finding this bug, since I don’t have a 1440p monitor) Disabling the back button when attempting to teleport to a different place When enabling night time, to turn the lights on, since the current dynamic lighting system only checks 2 timeframes, and doesn’t turn on otherwise. Still need to add/replace: Replace placeholder items and images in the shop frame Adding customization options for the golf club (or as it’s named, golfstick) 3. Finally start building the map (if nothing else comes up that needs fixing, or another idea that needs to be implemented)
Devlog 5! New fixes and additions also shown in the video Features: Parts now spin the same speed at any fps, and one main script is now controlling them all using CollectionService The GolfStick now has customization added in the shop! Autosave has been added (saves every 60sec with visual UI) Completed levels and main menu settings get saved Main menu now has transitions! Fixes: Shop and music menu now finally properly scale on ALL resolutions! Shop buttons fixed with scale instead of sizing Disabled the back button when attempting to teleport to a different place Lights are fixed for the nightTime setting (didn’t turn on/off before) Ambiance now plays with the nightTime setting on A saved table is now used instead of searching for lamp parts each time the alpha tween runs (dynamic lighting on/off tween), in result saving performance. Fixed golf ball trail and effect visibility (now you don’t see other player trails and effects, which reduced visibility before.) Main menu play button fixed to not start volume fade out from volume 1, instead now uses the current volume of the sound Commented out debug prints that aren’t needed anymore (kept incase something breaks though) Fixed saves when altf4-ing from the game or the server shutting down. PlayerRemoving and BindToClose double saving upon shutdown Still need to replace: Placeholder images and items in the shop UI. After that, time to start building!
Small update/Devlog 5.5 I’ve been working on a few things for the game before starting to build the map and in result wanted to share these. Changes: “New” spawnPad and clearBall models, both now display their cooldowns with text and colors (locally for the player) I’ve replaced the low quality music in the main menu and added a “few” more songs, instead of just 11 songs now the game has.. 87! Now the main menu is also controlled by one script only, instead of having one in each button (in result also making porting easier to the other places) Also, the side buttons have been redesigned! Now they have a collapse menu button, and a button for returning to the main menu. This is so that more of the screen is available for mobile players (and a bit of the screen on PC, too). Returning to the main menu will be useful for example, if the player completes every stage in the Grass “destination”/Environment and wants to continue to the next one. Also the music UI has been fixed to work on 4K (didn’t properly implement scale on the buttons) And, a very special thing in my opinion is that the shop is finally complete ! Consisting of golf balls, trails, effects and different golf clubs (for a visual representation, go to the video after reading this post) The Golf club preview image on the tool changes per the equipped cosmetic too!
Map development update I’ve been working on a few ideas recently and have been attempting to build something “decent”. With a bit of trial and error so far I’ve made A tree And 3 stages 🤞 Perfect development pace, isn’t it? Anyway, here are the images showing stages and the tree.
Map development update #2 I’ve developed the map and it’s outer scenery a lot , although I’m running into optimization regarding te trees. (haven’t worked on a lot of stages though, only added the 4th one) Maybe the tree has a lot of vertices and I could somehow optimize it in blender? If so, that could be the main factor why the game ran better with less trees. Sunrays, bloom and a shorter range detpth of field have been added And a small experiment for a tutorial cutscene has been added too. In the process of this “devlog” I’ve also lost 11h of work Also, a new loading screen has been added and the one from TP has been fixed!
Small update/Devlog 6 New additions: A tutorial has been added and is fully working! (still needs sounds but otherwise fully complete) Main menu disallows the player to join the Arcade and Desert map if they haven’t completed the tutorial yet. Map scenery is done! Only need the stages now A boost pad has been added (and a golf ball loop will be made!) Colorcorrectioneffect has been added to make the game brighter in terms of colors instead of dull. Fixes: Trees were optimized a little in blender (the fir tree originally had 6.6k faces when I opened the file.. oof) Renderfidelity on leaf parts for trees was changed to automatic (otherwise the trees would look like twigs from far away) Lights turn off when daytime cycle setting gets turned off Daytime cycle script fixed to turn off after turning off the nighttime setting Changes: Lighting from invisible walls on stages removed (will use lights that the player can see instead) Main menu UI has been changed to have shadows on the buttons. Main menu UI text also has a “manual” shadow on the “Choose your destination!” text UIStroke on stage signs is now a bit thicker (text is easier to read) Need to add/fix: UI that shows your current leaderboard stats instead of the default one Arm swinging the golfstick when moving with it (will probably either switch to R6 or just make an invisible hitbox for the tool) Note: Ignore the last map building update. The upload system completely broke for me. I can’t add an attachment to the devlog (so I can’t edit it) and deleting it just results in an error.
Devlog 7 Additions: Grass map is now complete! Added lamp scenery to the stages, so you can actually complete them during the night Tutorial is complete with music! Shop UI now has shadows behind the buttons Added an invisible hitbox extension to the golfstick (mainly fixes issue, although still may need to switch to r6 due to animation packs) UI with stats (Cash, stages won) and sounds + cash counting up/down The tutorial now has animations for hitting the ball Changes: Tutorial made more visually similar overall First tutorial animation changed to: Move the golfstick not as far back/forward Move the golfstick a bit faster when hitting the ball Tutorial second animation changed to: Not rotate the golfstick as far (60 degrees instead of 90) Fixes: Stats UI centering on screen Before starting to work on the next map which is the Arcade, a few other settings will be added to the settings menu. Music UI may also change.
Hello again! I’ve started working on the arcade map, as the grass map is pretty much complete (just need to fix the ui a bit) I’ve decided to rewrite the playSound script a bit to not be hardcoded and play a different sound (depending on what string is received from the remoteEvent) instead of creating a remoteEvent and a new script for each one For example, now it can play either the golfhole sound or the sound for the ball disappearing in stage 2. Also, for the new automated door, I’ve experimented a little with spatial-ish sound. Turns out it’s really easy (for what I need, atleast) So far I’ve made a few things in-game and outlined a few ideas and a roadmap. Currently built: First three stages (which are glow-in-the-dark!) mostly complete parking lot Front of the building (although unfinished) A road leading up to the parking lot with a small grass patch. Automated door There may not be as much devlogs now, but the game is still in development!
Every stage in the Arcade (map) has been built! The arcade now consists of 9 stages in total! New thing is that some are a bit more.. interactive , and a few are a bit difficult or tedious .. to say the least. (example of changing stages the attached video) Now that the stages are done, the game is inching a bit closer to completion! Now, of course, there may be ~15 or more things to still complete in the roadmap , but any progress is great. You may (or may not) be wondering how I made all of these in 4 hours. Well, I only have one explanation. I uhh… forgot to enable the plugin after making something else. Oops! (factory gambler prototype) Anyway, during this time a few small misc changes have been done: stageLogic (new script) has been added to well.. control the stages. (Stage 5, 7 and 9.) Shop UI trail naming has been changed a little. Blinking activity on stage signs has been removed. Note: Video player in SD is bugged. You have to click on the devlog, then go and click on the video for it to play.
UI Revamp (W.I.P) I’ve started reworking the main UI for the game because well.. the old one is to say the least - not good. So far I’ve reworked basically everything in-game (except the tutorial, but it won’t be reworked anyway as it can only be seen one time) I’ve also experimented a bit with hover tweens (button getting larger on hover) and sound effects, which have been implemented now. Another thing I’ve experimented a bit with is viewport frames , which are now used in the shop to show golf balls and clubs/“sticks” spinning. I’d want to possibly implement a “Are you sure you want to buy (x) item for (x) amount” in the shop, but that’s not planned at the moment. Things still unfinished that I want to complete (for UIs): Setting to enable/disable dark mode Light mode UI (as at the moment it’s dark mode only) Sound changes: “song2” in the main menu has been replaced due to it being striked by Roblox (not sure why!) Sound in the tutorial UI before accepting/declining the tutorial has been changed (same issue)
In-game UI revamp is complete! *and a few miscellaneous fixes have been made The settings menu has been revamped to add the light mode setting, now featuring page 1 and 2, and a few other settings which are currently in progress of being made. In my opinion, light mode looks decent but I still prefer dark mode. A new setting that is still a bit of a work in progress, but mostly finished is a hide UI hotkey , which as the name states, hides ui (in-game only). I still need to implement that the setting saves, but overall it works just fine. It’s made to only apply a keybind if you’re playing on PC, though. Fixes: autosaveUI loading/saving icon was still spinning when not visible. Fixed by seeing if the frame is actually visible (instead of if the frame exists, small typo) Shadow button now just changes immediately instead of waiting for the server to change the variable, now it just fires the remoteEvent only to save the setting autosaveUI UIstroke clipping fixed by changing it to apply inner instead of outer Tree sway intensity has been changed to be a bit lower, otherwise it’d look unnatural. Tree pivots fixed to be on the bottom for tree sway (this was a pain) Tree pivot issues: Changing tree pivots manually always broke for some reason. It took a few hours to fix them, then when I dragged the trees down it reset them. Upon pressing undo the pivots were still reset, not like they were before. Then, I tried fixing them without dragging anything, and the next time I opened studio it reset again. I found that ctrl+l may work, but that didn’t work either. Had to end up cloning everything over again, which somehow has made the shadows more intense in the dense tree areas, even though nothing changed between the two. This was NOT fun When writing this devlog, I found out that the oak trees have decided to fly in the air, so that’s great
New camera mode for the main menu! Demo is in the video! Before remaking/overhauling the main menu UI into light/dark mode (and, to look nice, of course), I’ve decided to rework the camera as it’s a bit of a weak point in the menu. It features: Camera sway Camera switching between points 15 different points for the camera Now, this has also reminded me that the main menu needs a little bit different of a song selection, as drum and bass for a gentle camera sway obviously doesn’t work. Miscellanous changes/fixes: Flying trees fixed statsGui (naming fix soonTM) bgcolor and background transparency changed in light mode to that of the old UI.
Overhauled main menu GUI including new songs and animations! Demo is in the attached video as usual! So, I’ve spent a bit of time reworking the main menu , since the old one looked “temporary” instead of finished. In my opinion, the result seems to be pretty nice . I’ve made/added/reworked: Esentially every menu New animations when moving pages or when going in-game Added hover effects for buttons Icons for the main buttons Added fake shadows to text instead of the bad-looking UIStroke like before Added image backgrounds Replaced (most) old songs! (song 1, song 3-5) It still isn’t fully finished, as I need to implement a light mode for it, but otherwise it’s fully functional! When light mode for the main menu and (maybe) loadUI is done, the focus will likely shift back to building the arcade map. Every time I test the game I somehow find bugs on accident, whoops! Anyway, there were a “few” fixes/updates that were made during development of this overhaul: Fixed spinnyCamera (script) to not repeat points Updated generateNumber for spinnyCamera (script) to go through all the points instead of randomly pick one and look repetitive Fixed autosaveUI appearing in the main menu Fixed hideUIHotkey setting (a lot of things which I won’t describe as this post isn’t meant to be a wall of text) Fixed mainMenuButton UIScale bug by resetting UIScale on click Updated both cameraFolder(s) to be models instead of folders, with ModelStreamingMode to be set to Atomic (fixes delay or infinite yielding on slower devices) Updated mainMenuUI image background transparency to 0.5 for settingsFrame, cameraModeFrame and creditsFrame Updated hideHotkey setting textColor3 when text is “Set Keybind” and added UIPadding to the button for text not to clip Fixed soundLogic volume bug that didn’t reset audio volume when going back to the main menu, in result making the song silent Updated soundLogic to fade in song volume instead of immediately start playing it at full volume And a lot more… (these are just ones found after the overhaul)
Arcade Machines They have interactable buttons (which do nothing, except move up and down) Nothing else to say about them, really.. Changes/additions: Changed song2 (main menu) due to likely being made by AI (cover seems to be aigen) Light mode setting now also changes the main menu Changed buttonFrame in-game to have wrapper frames, in result being affected by the UIListLayout, and now they don’t clip together when using smaller screens, but they can still be animated.
Arcade map update The indoor area is close to being finished! It still, of course needs a few things to be completed (for example, the food area, filling the empty space, etcetera.) Next step is, of course, the outdoors! I assume it shouldn’t take as long to make as the interior was, but who knows Another thing the game still needs is ambiance zones. (and a new ambiance sound for the indoors, of course) I’m thinking of implementing this with just 2 parts for the indoors and outdoors, which should do the trick. Every day this project is (hopefully) coming a bit closer to being shipped, but progress will slow down a bit due to school starting. In an ideal situation this’ll likely be shipped in a week, or atleast I hope to get it sort-of-ship ready by that time.
Arcade map complete! New: the outside has now been fully finished (instead of just being a baseplate) Smaller changes/additions: the arcade map now has seats , shapes on the floor and ambiance zones. As the second map is done, I’m getting closer to (finally) shipping this project, and (hopefully) getting good enough reviews to get my goal from SD. The “Desert” map will likely be a bit shorter compared to the arcade map (or even grass map, undecided.), as I don’t have that much time anymore due to school starting.
Started work on the “Desert” map. All stages are now built! There are only 5 stages due to school taking most of my time, as usual. (and, there’s already 2 other maps in the game, so that’s that)
Desert map complete! Well.. that was way faster compared to the other maps, which makes sense due to a desert.. well, being a desert. Anyway, now that the main game is done*, I’ve also made thumbnails and an icon for the game. I still need to make a README and a proper description for the game, to ship , of course. *Will likely rework the tutorial gui a bit and the ui shown when teleporting between maps Anyway, look forward to seeing a few more updates soon, as the aforementioned updates/additions shouldn’t take a while
FINALLY shipping! (after this devlog) After likely losing a few hairs here and there (/j) after these 3 (almost 3 and 1/2) months, I deem minigolf to be done. I’m kind of suprised myself that the project took so long. I believe that this, by far is the longest project I’ve ever made. During the process, I’ve learned A LOT more about studio and luau overall, which will definetly help make better games (with better implementations). I have to admit, coming closer to the end there was a bit of burnout, but the result, in my opinion, was definetly worth it. I also want to say thank you to everyone that has supported me and this project, it means a lot :) Since the last devlog, I fixed and updated the few rough edges left in the game, GitHub repository and Stardance which are: Stardance: Making a new banner (old one didn’t even match the style of the game anymore) Adding a demo link & github repository link GitHub repository: Made a README that, in my opinion, is nice. It follows the requirements that the shipping guide/README guide Stardance mentions (controls, images, demo link, features, etc) Game: Changing the teleport screen to one that blends in during teleport Changed badges for new ones (icons) and requirements (now 1, 10 and 22 stages) Made the maze in stage 8 (grass map) harder to complete, was too easy before Changed all loading music Removed the funFacts moduleScript (not needed anymore) Stage 9 sign fixed to show status for Arcade_9 instead of Arcade_3 Updated desertMap particles to be thinner Changed loadUI to have fake shadow text instead of a thick UIStroke
After a few prototypes, (a lot) I’ve decided to make another map, which a factory/warehouse type of map. So far, I’ve made these props: Conveyor Structual beam Light Unloading zones At the moment, I’m not really sure how I’ll make the stages in the map, but I have an idea of making them more interactive (somewhat similar to the arcade map.) One small mention, the map will likely be in beta or not fully finished (when or if I ship again), as Stardance is likely going to end soon.
Finished the first room in the new Factory map! What lighting style do you think is better? Realistic or soft? (shadowmap) Realistic is img 1-2, soft is 3-4 At the moment, there won’t be any minigolf courses, as I’d rather finish the building first. Also, I had a few new ideas for the game that may make it a bit more “immersive” to say the least.. Will experiment with them and post something in the future if it works out.
Ships:
I’ve made a minigolf game in Roblox studio, featuring 3 maps and 22 stages in total, with cosmetics that can be bought for your golf club or golf ball, and some nice QoL features like a music menu, or a hide UI hotkey In my opinion, the main challenging thing was building all the maps. I’m not a great map builder, so making even one map or all stages took a lot of time, plus taking on the task of making 3 maps for the first release was, admittedly, a not-so-thought-through idea. Of course, this doesn’t mean that there was just 1 challenge, this was just the main one for me. Please note: due to the Roblox guideline changes, you must have an account that is 16+ Facial Age Estimation or ID verified to play the game. This can only be changed if the game reaches 250 “active” players. There are alternatives, which is either setting up the game yourself in Roblox Studio (takes some time), or just by watching the small feature demo. These restrictions/alternatives are mentioned in the README. (written per default questions)...
|
1793001164.8082938
|
1793087564.8082938
|
|
61468
|
esp32 home gaurd by @mahith | Stardance
|
mahith
|
1
|
7.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T09:15:09Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a small home security camera using an ESP32-CAM and a mic.The hardest part was getting the live video to stop lagging and fixing browser errors when loading the stream. I’m really proud that the camera works smoothly now and connects to my website on To test it, open the website link to see the controls and check my demo video to see the camera streaming live.", "repo": "https://github.com/mahi-73/esp32-home-guard", "demo": ""}]...
|
[{"post_id": 66797, "ts": "202 [{"post_id": 66797, "ts": "2026-09-12T18:02:56Z", "hours": 7.2525, "text": "I built a home security camera using an ESP32-CAM and a mic module. I wrote the code in Arduino to connect it to my Wi-Fi and stream the camera video. Then I made a web page on Vercel so I can open the live stream and take photos from my browser. I had a lot of trouble with video lag and browser errors, but I debugged the code and got the stream working."}]...
|
Title: esp32 home gaurd by @mahith | Stardance
De Title: esp32 home gaurd by @mahith | Stardance
Devlogs:
I built a home security camera using an ESP32-CAM and a mic module. I wrote the code in Arduino to connect it to my Wi-Fi and stream the camera video. Then I made a web page on Vercel so I can open the live stream and take photos from my browser. I had a lot of trouble with video lag and browser errors, but I debugged the code and got the stream working.
Ships:
I made a small home security camera using an ESP32-CAM and a mic.The hardest part was getting the live video to stop lagging and fixing browser errors when loading the stream. I’m really proud that the camera works smoothly now and connects to my website on To test it, open the website link to see the controls and check my demo video to see the camera streaming live....
|
1793055352.398172
|
1793141752.398172
|
|
61124
|
personal site by @abdulqadir | Stardance
|
abdulqadir
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T08:46:23Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Built a simple personal website with 3 sections (About Me, Skills, Contact). Wrote all the HTML and CSS myself, learning what each property does as I went — a warm apricot color scheme, card-style sections with soft shadows, and a hover lift effect on each card. The hardest part was getting section widths to line up evenly instead of shrinking to fit content. Proud that this is genuinely hand-typed, not AI-generated. To test: just open the live link and hover over the cards.", "repo": "https://github.com/Qadir-eng/personal-site", "demo": "https://qadir-eng.github.io/personal-site/"}]...
|
[{"post_id": 67220, "ts": "202 [{"post_id": 67220, "ts": "2026-09-13T08:31:57Z", "hours": 0.3131, "text": "Added a hover effect on each section card — when you move your mouse over a box, it lifts up slightly with a smoother, deeper shadow, then settles back down when you move away. Used CSS transition and transform: translateY() to make the movement smooth instead of instant. Also fixed my section widths so all three cards line up evenly instead of shrinking to fit their own content. as you can see the second box has lil bit shadow in background"}, {"post_id": 67199, "ts": "2026-09-13T08:07:30Z", "hours": 1.0625, "text": "Started my Personal Site project for Stardance. Built the HTML structure with 3 sections (About Me, Skills, Contact) and wrote all the CSS myself with guidance — warm apricot background, orange headings, card-style sections with soft shadows and rounded corners. Wrote every line myself this time, no AI-generated code, learning what each CSS property does as I go."}]...
|
Title: personal site by @abdulqadir | Stardance
D Title: personal site by @abdulqadir | Stardance
Devlogs:
Started my Personal Site project for Stardance. Built the HTML structure with 3 sections (About Me, Skills, Contact) and wrote all the CSS myself with guidance — warm apricot background, orange headings, card-style sections with soft shadows and rounded corners. Wrote every line myself this time, no AI-generated code, learning what each CSS property does as I go.
Added a hover effect on each section card — when you move your mouse over a box, it lifts up slightly with a smoother, deeper shadow, then settles back down when you move away. Used CSS transition and transform: translateY() to make the movement smooth instead of instant. Also fixed my section widths so all three cards line up evenly instead of shrinking to fit their own content. as you can see the second box has lil bit shadow in background
Ships:
Built a simple personal website with 3 sections (About Me, Skills, Contact). Wrote all the HTML and CSS myself, learning what each property does as I went — a warm apricot color scheme, card-style sections with soft shadows, and a hover lift effect on each card. The hardest part was getting section widths to line up evenly instead of shrinking to fit content. Proud that this is genuinely hand-typed, not AI-generated. To test: just open the live link and hover over the cards....
|
1793055299.1697955
|
1793141699.1697955
|
|
60943
|
verty by @vertriwayz | Stardance
|
vertriwayz
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T08:28:35Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created verty-web, which is a simple and minimalistic homepage designed for the convenience of your Chrome web page. It was challenging getting the overall idea and the JS so far because I had to plan for the clock, the search bar, and the JS since it is not really tolerant like Python and it is very adamant about giving the right code. I am so far proud of the design, especially the API that gives the NASA wallpaper from the APOD. You can visit the website at https://vihaanvinoth.github.io/verty-web/ to test it out, and https://github.com/vihaanvinoth/verty-web/ to download the extension.", "repo": "https://github.com/VihaanVinoth/verty-web", "demo": "https://vihaanvinoth.github.io/verty-web/"}]...
|
[{"post_id": 67209, "ts": "202 [{"post_id": 67209, "ts": "2026-09-13T08:16:56Z", "hours": 0.3017, "text": "Additional Devlog +1: Building verty-web This is a small devlog just noting how I worked on my readme and final publishing for GitHub. I am really proud of the work that I have done so far and I hope to work on more stuff soon. Before I shipped I have to add this final few minutes before I ship. :D"}, {"post_id": 67178, "ts": "2026-09-13T07:41:31Z", "hours": 0.5522, "text": "Final Devlog: Building verty-web Ok, now that I have managed to port this custom tab extension to Chrome, it is now up and running on both the site ( https://vihaanvinoth.github.io/verty-web ) and the extension, and after fixing several bugs with the manifest.json and the API I was able to cleanly create this cool and sleek home tab. I am pretty proud of this and it look really cool on my home tab. SO, here’s what i’ve done pretty much: HTML CSS JS Chrome Extension manifest.json Published to Github/Github Pages Readme Yay So, I guess that’s pretty much it. This was an easy task as I’ve already done stuff like this before (visit https://vihaanvinoth.com ; my personal site!) and yeah :D Now all I got to do is ship this project and I will be able to work on other project ig now!!!!!!!!1!!!"}, {"post_id": 66450, "ts": "2026-09-12T09:04:10Z", "hours": 1.705, "text": "Devlog #1: Building verty-web Alright, so I’ve had experience in HTML and CSS, and so I decided to begin building this web tab just for the convenience of my desktop and so I can use it in chrome. So far i’ve worked on the HTML, CSS, and JS, components of the project, and I am pivoting towards pushing this to a chrome extension which will allow me to set this as a chrome home tab. Its going really well and I hope to see how it will go pretty soon. This is a pretty rushed devlog because I forgot to make one in the start, so this is just a compilation of the work i’ve done so far. Here’s some of the stuff i’ve implemented (some from the instructions): NASA APOD api for the background Clock Google Query Search Bar Links group Timely affirmations"}]...
|
Title: verty by @vertriwayz | Stardance
Devlogs:
Title: verty by @vertriwayz | Stardance
Devlogs:
Devlog #1: Building verty-web Alright, so I’ve had experience in HTML and CSS, and so I decided to begin building this web tab just for the convenience of my desktop and so I can use it in chrome. So far i’ve worked on the HTML, CSS, and JS, components of the project, and I am pivoting towards pushing this to a chrome extension which will allow me to set this as a chrome home tab. Its going really well and I hope to see how it will go pretty soon. This is a pretty rushed devlog because I forgot to make one in the start, so this is just a compilation of the work i’ve done so far. Here’s some of the stuff i’ve implemented (some from the instructions): NASA APOD api for the background Clock Google Query Search Bar Links group Timely affirmations
Final Devlog: Building verty-web Ok, now that I have managed to port this custom tab extension to Chrome, it is now up and running on both the site ( https://vihaanvinoth.github.io/verty-web ) and the extension, and after fixing several bugs with the manifest.json and the API I was able to cleanly create this cool and sleek home tab. I am pretty proud of this and it look really cool on my home tab. SO, here’s what i’ve done pretty much: HTML CSS JS Chrome Extension manifest.json Published to Github/Github Pages Readme Yay So, I guess that’s pretty much it. This was an easy task as I’ve already done stuff like this before (visit https://vihaanvinoth.com ; my personal site!) and yeah :D Now all I got to do is ship this project and I will be able to work on other project ig now!!!!!!!!1!!!
Additional Devlog +1: Building verty-web This is a small devlog just noting how I worked on my readme and final publishing for GitHub. I am really proud of the work that I have done so far and I hope to work on more stuff soon. Before I shipped I have to add this final few minutes before I ship. :D
Ships:
I created verty-web, which is a simple and minimalistic homepage designed for the convenience of your Chrome web page. It was challenging getting the overall idea and the JS so far because I had to plan for the clock, the search bar, and the JS since it is not really tolerant like Python and it is very adamant about giving the right code. I am so far proud of the design, especially the API that gives the NASA wallpaper from the APOD. You can visit the website at https://vihaanvinoth.github.io/verty-web/ to test it out, and https://github.com/vihaanvinoth/verty-web/ to download the extension....
|
1793055275.236856
|
1793141675.236856
|
|
56330
|
double-or-nothing by @M4RC086 | Stardance
|
M4RC086
|
1
|
19.0
|
103
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T08:25:51Z", "hours": 19.0, "multiplier": 5.3, "payout": 103, "blessing": "neutral", "text": "So I made a simple web game were you have a score and a coin. If you decide to flip the coin, you can duplicate your score or lose it, you take the risk. I used flask (even if it wasn’t the more ideal for this project). I learned how to use flask, Javascript, databases and fetch, so it was a project to learn things. I’m really proud of the leaderboard in real time but unfortunately I use the free plan of Supabase and Vercel so it can have some lag, but I tried to lower it all I could. I hope you like the mini game!", "repo": "https://github.com/M4RC086/double-or-nothing", "demo": "https://double-or-nothing-eta.vercel.app/"}]...
|
[{"post_id": 67202, "ts": "202 [{"post_id": 67202, "ts": "2026-09-13T08:11:08Z", "hours": 1.6578, "text": "Bugs, bugs, more bugs! I had bugs but in fact I think those but existed because I accidentally deleted lines of code that were needed"}, {"post_id": 65355, "ts": "2026-09-10T13:20:45Z", "hours": 3.4994, "text": "I deployed it in Vercel and Supabase for the database. It wasn’t really hard to do but it was boring and very long to do. I will make small changes and I ship it. :)"}, {"post_id": 64858, "ts": "2026-09-09T15:32:36Z", "hours": 2.2994, "text": "Well, well, well. I thing the project is near to be over. I need to deploy it. I think I’m going to use nest because it’s hard to find a platform that accept databases. I want to move the leaderboard to the left of the score and little details like that but nothing very big"}, {"post_id": 62848, "ts": "2026-09-06T11:37:24Z", "hours": 1.9247, "text": "I did some CSS and I think is great. I also fixed some bugs and improved a little the code but nothing very important"}, {"post_id": 62155, "ts": "2026-09-05T12:30:10Z", "hours": 3.0353, "text": "I added a coin that flips with a CSS animation. I have to say that I love and hate javascript at the same level. I had a LOT of help of Claude and Deepseek for the coin CSS but like always I took my time to understand it and customize it. There’re a few bugs. Apart from the aesthetics, I could say it’s ready but I will change lots of things like always for no reason. I NEED A CLEAN CODE!"}, {"post_id": 60762, "ts": "2026-09-03T10:53:48Z", "hours": 1.1658, "text": "I did the leaderboard in real time… I hate javascript. Thanks Claude…"}, {"post_id": 60239, "ts": "2026-09-02T14:14:00Z", "hours": 2.0994, "text": "I made the connection between the database and the login. So now you log with your username and is stored in the cookies with the flask session module so if you enter again you have your username automatically set. I need to refactor the hole code because it’s a mess. I have to admit that I used a lot of Claude for this part but I made sure I knew what I was doing. I know I am not doing it the best way but I’ll try to improve the code slowly"}, {"post_id": 59476, "ts": "2026-09-01T10:45:05Z", "hours": 1.0508, "text": "I made the database connection! I used sqlite3 and it was easier than what I thought it would be. I also removed the stay button because it makes no sense: if you want to stay you only need to not to press the double button :v. Now I need to do the login before doing all the css, animations and stuff."}, {"post_id": 59235, "ts": "2026-08-31T22:13:25Z", "hours": 1.6658, "text": "The main mechanic is done except for the database. I have to figure out how to do it. I thought the game could be like a Russian roulette because is the same idea (the gun shooting the money or something like that?) but I don’t know how to do all this but I will take my time to learn for this project and do a good CSS."}, {"post_id": 58725, "ts": "2026-08-31T08:29:47Z", "hours": 0.9381, "text": "This is the firs devlog of a larger project. This project will be a web made with Flask (because I don’t know js). The idea is you have a score and you have 50% of chances of double it and 50% of chances you come back to 0 or you can stay with your points. I also want to implement a leaderboard because the funny part is to be the one with most points. I think people like this sort of projects :)"}]...
|
Title: double-or-nothing by @M4RC086 | Stardance
Title: double-or-nothing by @M4RC086 | Stardance
Devlogs:
This is the firs devlog of a larger project. This project will be a web made with Flask (because I don’t know js). The idea is you have a score and you have 50% of chances of double it and 50% of chances you come back to 0 or you can stay with your points. I also want to implement a leaderboard because the funny part is to be the one with most points. I think people like this sort of projects :)
The main mechanic is done except for the database. I have to figure out how to do it. I thought the game could be like a Russian roulette because is the same idea (the gun shooting the money or something like that?) but I don’t know how to do all this but I will take my time to learn for this project and do a good CSS.
I made the database connection! I used sqlite3 and it was easier than what I thought it would be. I also removed the stay button because it makes no sense: if you want to stay you only need to not to press the double button :v. Now I need to do the login before doing all the css, animations and stuff.
I made the connection between the database and the login. So now you log with your username and is stored in the cookies with the flask session module so if you enter again you have your username automatically set. I need to refactor the hole code because it’s a mess. I have to admit that I used a lot of Claude for this part but I made sure I knew what I was doing. I know I am not doing it the best way but I’ll try to improve the code slowly
I did the leaderboard in real time… I hate javascript. Thanks Claude…
I added a coin that flips with a CSS animation. I have to say that I love and hate javascript at the same level. I had a LOT of help of Claude and Deepseek for the coin CSS but like always I took my time to understand it and customize it. There’re a few bugs. Apart from the aesthetics, I could say it’s ready but I will change lots of things like always for no reason. I NEED A CLEAN CODE!
I did some CSS and I think is great. I also fixed some bugs and improved a little the code but nothing very important
Well, well, well. I thing the project is near to be over. I need to deploy it. I think I’m going to use nest because it’s hard to find a platform that accept databases. I want to move the leaderboard to the left of the score and little details like that but nothing very big
I deployed it in Vercel and Supabase for the database. It wasn’t really hard to do but it was boring and very long to do. I will make small changes and I ship it. :)
Bugs, bugs, more bugs! I had bugs but in fact I think those but existed because I accidentally deleted lines of code that were needed
Ships:
So I made a simple web game were you have a score and a coin. If you decide to flip the coin, you can duplicate your score or lose it, you take the risk. I used flask (even if it wasn’t the more ideal for this project). I learned how to use flask, Javascript, databases and fetch, so it was a project to learn things. I’m really proud of the leaderboard in real time but unfortunately I use the free plan of Supabase and Vercel so it can have some lag, but I tried to lower it all I could. I hope you like the mini game!...
|
1793004839.1568658
|
1793091239.1568658
|
|
56035
|
Solar OS by @smallz | Stardance
|
smallz
|
1
|
11.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T08:14:03Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a web os based off nature called Solar OS. It was challenging, but I learnt a lot along the way including how functions work, new css variable things, a little bit on how javascript works, and more. It has features such as a working browser, my portfolio, and more. To view the full features, check out the readme on the github linked. I also made some custom graphics myself. You may notice an incomplete app called “Solz App Installer”. Don’t worry about that, I’m going to follow the Web OS 2 guide to complete it. Thanks for spending your time reviewing this :)", "repo": "https://github.com/smallzdev/solar-os", "demo": "https://solaros.smallz.dev/"}]...
|
[{"post_id": 67195, "ts": "202 [{"post_id": 67195, "ts": "2026-09-13T07:57:23Z", "hours": 3.3867, "text": "Changed appearances, added a browser (lion browser), partially made an app installer (Solz App Installer), made the portfolio app actually display my portfolio, made the access desktop button work, and more! I’m not sure if I’ve said this already, but I’ve also hooked it up to my custom domain on github pages so if you click on my project, you can view it! However I’m not sure how it handled the new update because it seems glitched, but I’ll give it some time to update before I try fixing it."}, {"post_id": 64684, "ts": "2026-09-09T08:47:56Z", "hours": 2.8486, "text": "Made some logos, fixed bugs, made some changes to the bottom bar, added the smallz.dev desktop app, and more! I struggled a bit because I called the ID “portfolioClose” in my script.js, but in the html I forgot that it was case sensitive and wrote it as “portfolioclose”. All sorted now though. :) Also the code is now deployed on a subdomain of my website!"}, {"post_id": 61157, "ts": "2026-09-03T22:39:31Z", "hours": 2.1039, "text": "Completed part 3 of the Jam. Fixed an issue with the bottom bar glitching (which was caused due to sizing). Added my own custom made close, drag, and full screen buttons (full screen doesn’t work yet though). I’ve made the windows draggable, closable, and openable. To open the welcome window, you need to click the Solar OS text on the bottom bar currently, but I plan to change it next update. Thank you!"}, {"post_id": 59438, "ts": "2026-09-01T09:08:33Z", "hours": 0.9419, "text": "Completed part 2 of the Jam. In this update, I’ve finished the time (which refreshes every sec), adde d a top bar, added a background, added a nice looking border, and maybe some other things I’m forgetting as well. It ended up being a lot simpler than i thought it would be to get to this part. Thanks for reading"}, {"post_id": 59351, "ts": "2026-09-01T02:54:45Z", "hours": 1.0075, "text": "Made it look a little more nice, including adding an image, changing the layout slightly, and fixing the previously terrible looking button. I kept changing the CSS to make it way better in my opinion. Now I’m done with step one of the jam, moving onto stage 2. Also published it to github now, so you can see the source code and the commits! I’ll try to commit every devlog from now on, but sometimes i might forget."}, {"post_id": 58032, "ts": "2026-08-30T11:40:23Z", "hours": 0.3683, "text": "Worked on the basics and the FAQ. I’m going to move the FAQ into my welcome message later but yeah. Just for the first 15m i did basically a set up."}]...
|
Title: Solar OS by @smallz | Stardance
Devlogs:
W Title: Solar OS by @smallz | Stardance
Devlogs:
Worked on the basics and the FAQ. I’m going to move the FAQ into my welcome message later but yeah. Just for the first 15m i did basically a set up.
Made it look a little more nice, including adding an image, changing the layout slightly, and fixing the previously terrible looking button. I kept changing the CSS to make it way better in my opinion. Now I’m done with step one of the jam, moving onto stage 2. Also published it to github now, so you can see the source code and the commits! I’ll try to commit every devlog from now on, but sometimes i might forget.
Completed part 2 of the Jam. In this update, I’ve finished the time (which refreshes every sec), adde d a top bar, added a background, added a nice looking border, and maybe some other things I’m forgetting as well. It ended up being a lot simpler than i thought it would be to get to this part. Thanks for reading
Completed part 3 of the Jam. Fixed an issue with the bottom bar glitching (which was caused due to sizing). Added my own custom made close, drag, and full screen buttons (full screen doesn’t work yet though). I’ve made the windows draggable, closable, and openable. To open the welcome window, you need to click the Solar OS text on the bottom bar currently, but I plan to change it next update. Thank you!
Made some logos, fixed bugs, made some changes to the bottom bar, added the smallz.dev desktop app, and more! I struggled a bit because I called the ID “portfolioClose” in my script.js, but in the html I forgot that it was case sensitive and wrote it as “portfolioclose”. All sorted now though. :) Also the code is now deployed on a subdomain of my website!
Changed appearances, added a browser (lion browser), partially made an app installer (Solz App Installer), made the portfolio app actually display my portfolio, made the access desktop button work, and more! I’m not sure if I’ve said this already, but I’ve also hooked it up to my custom domain on github pages so if you click on my project, you can view it! However I’m not sure how it handled the new update because it seems glitched, but I’ll give it some time to update before I try fixing it.
Ships:
I made a web os based off nature called Solar OS. It was challenging, but I learnt a lot along the way including how functions work, new css variable things, a little bit on how javascript works, and more. It has features such as a working browser, my portfolio, and more. To view the full features, check out the readme on the github linked. I also made some custom graphics myself. You may notice an incomplete app called “Solz App Installer”. Don’t worry about that, I’m going to follow the Web OS 2 guide to complete it. Thanks for spending your time reviewing this :)...
|
1793004802.8015313
|
1793091202.8015313
|
|
61424
|
project 2 by @nishi | Stardance
|
nishi
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T08:11:15Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "well! i have made my first web os. it isn’t easy in starting as a beginner. while coding you have to explore many other things too. it isn’t just 2.5 hours i code! but more, the time i spent learning to link hackatime, to search my type of image and many more. many issues came while coding, initially it was frustating but with time it became a thing to learn with excitement . my web os isn’t perfect:) but it’s okay for me that i have finally started making such things.", "repo": "https://github.com/nishikaa17/web-os-01/", "demo": "https://nishikaa17.github.io/web-os-01/"}]...
|
[{"post_id": 67196, "ts": "202 [{"post_id": 67196, "ts": "2026-09-13T07:57:47Z", "hours": 2.5403, "text": "my first web os with my aesthetics! yay"}]...
|
Title: project 2 by @nishi | Stardance
Devlogs:
m Title: project 2 by @nishi | Stardance
Devlogs:
my first web os with my aesthetics! yay
Ships:
well! i have made my first web os. it isn’t easy in starting as a beginner. while coding you have to explore many other things too. it isn’t just 2.5 hours i code! but more, the time i spent learning to link hackatime, to search my type of image and many more. many issues came while coding, initially it was frustating but with time it became a thing to learn with excitement . my web os isn’t perfect:) but it’s okay for me that i have finally started making such things....
|
1793055344.9440541
|
1793141744.9440541
|
|
60880
|
rabbitOS by @kas_kadiia | Stardance
|
kas_kadiia
|
1
|
15.73
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T07:47:28Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created a Rabbit and Steel themed WebOS, following the WebOS-1 tutorial to begin with it. This WebOS features a timer, a music player, an embedded Fandom Wiki link, and settings the OS remembers. Making this with genuinely almost no prior HTML, CSS, and JS experience took some time, but I got the hang of it, even if I feel like some of this is done incredibly inefficiently or could be done better. If anything, the prospect of refactoring later for future expansion is what scares me. In the end, I am still happy with how it turned out, especially with adding some animated images.", "repo": "https://github.com/kaskadiia/rabbit-OS", "demo": "https://kaskadiia.github.io/rabbit-OS/"}]...
|
[{"post_id": 69452, "ts": "202 [{"post_id": 69452, "ts": "2026-09-17T02:37:32Z", "hours": 1.5356, "text": "Devlog #7 I made a simple start-up screen, but I spent an hour fighting image scaling and general dimension quirks until I (mostly) figured it out. I used a simple fade-in from black paired with a fading blur effect to try and recreate the intro to Rabbit and Steel, along with using a cut version of the intro OST. (except I forgot browsers block autoplaying audio)"}, {"post_id": 68958, "ts": "2026-09-16T03:31:13Z", "hours": 2.19, "text": "Devlog #6 Well, now I move onto WebOS 2. I made the windows resizable! It took way too long to figure out why scrolling content wasn’t working, since I wanted it to be able to scroll if a window was really small. But, that was really only one of the problems. After figuring that out, I still needed to readjust the apps and the other content, such as the music room animation or the timer crow. The best option I could think of? Don’t even deal with it (for now). So for the time being, the animations are gone. I also made the app icons animated with basic CSS animations, and I think it just adds a nice touch to it."}, {"post_id": 67064, "ts": "2026-09-13T03:33:49Z", "hours": 2.1717, "text": "Devlog #5 Added a timer app. This took a bit of time to figure out in terms of functionality. But I was far more frustrated with trying to position Twili (the crow) and the rings in the center. Like the music player rabbits, this is animated as well, and the rings rotate. I also added sound effects from Rabbit and Steel for the timer being started and when it goes off, since what good does a timer do if it doesn’t notify you audibly?"}, {"post_id": 66997, "ts": "2026-09-13T00:40:06Z", "hours": 1.825, "text": "Devlog #4 Added a music player. This music player just uses the Spotify preview embed of a playlist containing the full Rabbit and Steel OST, which I thought was preferable than importing all the sound files. It took me some time to figure out how to make the image animated, as it was a spritesheet taken directly from the game, but I think it adds a lot more to the music player. In future apps, I definitely want to add more animated assets. I have also expanded the settings page to include all backgrounds in Rabbit and Steel, and I have utilized local storage to save the settings and the background for future visits."}, {"post_id": 66891, "ts": "2026-09-12T20:48:57Z", "hours": 2.5692, "text": "Devlog #3 Added a settings page, albeit very barebones at the moment. This allows you to change the backgrounds; matching with game area backgrounds in Rabbit and Steel. There are two settings for window blur and drop shadow. I also spent (a lot of) time trying to add transitions but I honestly still have no clue how to use them properly. I’ll add more backgrounds to select later, but I want to make some other app."}, {"post_id": 66352, "ts": "2026-09-12T04:06:51Z", "hours": 2.7928, "text": "Devlog #2 I did some polishing and made a new app. I decided not to make a notes app as the guide directs, because I felt it to be unfitting. So, I instead made an embedded wiki (although I hate Fandom, Miraheze will not load)."}, {"post_id": 66279, "ts": "2026-09-12T00:52:31Z", "hours": 2.3114, "text": "A Rabbit and Steel themed WebOS? You should steel yourself NOW! Rabbit and Steel has been one of my favorite games to play, especially with friends. So I thought, if I were to make a WebOS for Stardance, I wouldn’t try to make one that would be useful in every single sector possible, but something that I would just have fun with. So I landed with a Rabbit and Steel themed idea. Right now, all I’ve made is the landing window, topbar, and a background, loosely based on the white border and dark transparent background used in the Rabbit and Steel UI. Obviously, the next course of action is following through on the guide, but then I will try to add more Rabbit and Steel themed features later. Anyways, you should play Rabbit and Steel."}]...
|
Title: rabbitOS by @kas_kadiia | Stardance
Devlog Title: rabbitOS by @kas_kadiia | Stardance
Devlogs:
A Rabbit and Steel themed WebOS? You should steel yourself NOW! Rabbit and Steel has been one of my favorite games to play, especially with friends. So I thought, if I were to make a WebOS for Stardance, I wouldn’t try to make one that would be useful in every single sector possible, but something that I would just have fun with. So I landed with a Rabbit and Steel themed idea. Right now, all I’ve made is the landing window, topbar, and a background, loosely based on the white border and dark transparent background used in the Rabbit and Steel UI. Obviously, the next course of action is following through on the guide, but then I will try to add more Rabbit and Steel themed features later. Anyways, you should play Rabbit and Steel.
Devlog #2 I did some polishing and made a new app. I decided not to make a notes app as the guide directs, because I felt it to be unfitting. So, I instead made an embedded wiki (although I hate Fandom, Miraheze will not load).
Devlog #3 Added a settings page, albeit very barebones at the moment. This allows you to change the backgrounds; matching with game area backgrounds in Rabbit and Steel. There are two settings for window blur and drop shadow. I also spent (a lot of) time trying to add transitions but I honestly still have no clue how to use them properly. I’ll add more backgrounds to select later, but I want to make some other app.
Devlog #4 Added a music player. This music player just uses the Spotify preview embed of a playlist containing the full Rabbit and Steel OST, which I thought was preferable than importing all the sound files. It took me some time to figure out how to make the image animated, as it was a spritesheet taken directly from the game, but I think it adds a lot more to the music player. In future apps, I definitely want to add more animated assets. I have also expanded the settings page to include all backgrounds in Rabbit and Steel, and I have utilized local storage to save the settings and the background for future visits.
Devlog #5 Added a timer app. This took a bit of time to figure out in terms of functionality. But I was far more frustrated with trying to position Twili (the crow) and the rings in the center. Like the music player rabbits, this is animated as well, and the rings rotate. I also added sound effects from Rabbit and Steel for the timer being started and when it goes off, since what good does a timer do if it doesn’t notify you audibly?
Devlog #6 Well, now I move onto WebOS 2. I made the windows resizable! It took way too long to figure out why scrolling content wasn’t working, since I wanted it to be able to scroll if a window was really small. But, that was really only one of the problems. After figuring that out, I still needed to readjust the apps and the other content, such as the music room animation or the timer crow. The best option I could think of? Don’t even deal with it (for now). So for the time being, the animations are gone. I also made the app icons animated with basic CSS animations, and I think it just adds a nice touch to it.
Devlog #7 I made a simple start-up screen, but I spent an hour fighting image scaling and general dimension quirks until I (mostly) figured it out. I used a simple fade-in from black paired with a fading blur effect to try and recreate the intro to Rabbit and Steel, along with using a cut version of the intro OST. (except I forgot browsers block autoplaying audio)
Ships:
I created a Rabbit and Steel themed WebOS, following the WebOS-1 tutorial to begin with it. This WebOS features a timer, a music player, an embedded Fandom Wiki link, and settings the OS remembers. Making this with genuinely almost no prior HTML, CSS, and JS experience took some time, but I got the hang of it, even if I feel like some of this is done incredibly inefficiently or could be done better. If anything, the prospect of refactoring later for future expansion is what scares me. In the end, I am still happy with how it turned out, especially with adding some animated images....
|
1793055259.1367185
|
1793141659.1367185
|
|
41831
|
Personal Website by @satr14 | Stardance
|
satr14
|
2
|
16.1
|
241
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T07:40:40Z", "hours": 3.0, "multiplier": 19.84, "payout": 66, "blessing": "neutral", "text": "this should have fixes from last ship’s suggestions as well as a extra background elements and animations to make the site look alive", "repo": "https://git.satr14.my.id/satr14/5th-site-expanded", "demo": "https://satr14.my.id/"}, {"ship_num": 2, "ts": "2026-09-05T02:50:59Z", "hours": 12.0, "multiplier": 14.97, "payout": 175, "blessing": "neutral", "text": "V5. IS OUT this was mainly challenging as school dumps work after work on me, but i ended up working on it in my spare time whenever i find it. new pages: /projects: contains orgs and repos /guestbook: github discussion powered /random: shows discord status and games i play", "repo": "https://git.satr14.my.id/satr14/5th-site-expanded", "demo": "https://satr14.my.id/"}]...
|
[{"post_id": 70141, "ts": "202 [{"post_id": 70141, "ts": "2026-09-18T15:29:20Z", "hours": 1.0961, "text": "i was supposed to work on smthin else, but saw my friend do this so i decided to implement it on my own site! it took this long mainly because its a very new feature and not really documented. luckily, my friend gave me docs (which will be merged upstream) and i was able to implement this early :D. regardless it was still pretty buggy added discord embed component info using same data as the main site content https://github.com/discord/discord-api-docs/blob/20b7c0d2a7c30fd455d3e8f6e58c8ab42eeb2849/developers/link-previews/component-embeds.mdx early docs if yall wanna try it"}, {"post_id": 67173, "ts": "2026-09-13T07:38:58Z", "hours": 0.6531, "text": "smol update but i randomly had a thought last night before sleeping to add this so im adding it :D added rolling titles in the background based of the roles i put in"}, {"post_id": 65941, "ts": "2026-09-11T12:40:49Z", "hours": 0.9083, "text": "i believe this shouldve been more time, because wakatime randomly stopped tracking time which shouldve been like 15-25 mins but whatever. now that its the weekend, im gonna cram as much hours i can get as this is still exam week. added background elements: idle rotating stars! made the stars turn into arrows when hovering over interactive elements / links added svelte page transitions for the conditional/fetching elements tweaked music player progress bar added a credit section for assets used and design inspiration changed timezone text display for same timezone offsets moved code duplication for styles and transitions to classes and central lib functions"}, {"post_id": 64054, "ts": "2026-09-08T05:45:02Z", "hours": 1.7758, "text": "aight i have an exam tomorrow so prob not the best time to be working, but whatever. im gonna add some finishing details from now on as well as improve based of last ship’s feedback changed hackclub role (im organizing haven in my city :D) added more audios to be randomly played made song playback persist between pages keep player notif open showing playback bar and play/pause button tweak pages gaps and paddings displayed webring name instead of “info?” changed main quote hehe"}, {"post_id": 60871, "ts": "2026-09-03T14:53:46Z", "hours": 1.855, "text": "exams are coming soon but i really need these hours. anyways, all pages should be completed by now. im gonna deploy and ship soon added discord status via lanyard api and npm package added games played via lizardbyte’s free igdb api proxy tweaked page transition to be shorter and use 1 global variable removed unused WIP component tweaked timezone info text remove timezone info card element 9 commits in total"}, {"post_id": 58137, "ts": "2026-08-30T14:25:57Z", "hours": 1.0158, "text": "im not joking when i say im burnt out from school. the only thing thats keeping me driving for coding is stardance and the certificate (prob the shop items too but the cert is more important for me). anyways i didnt have much energy this past week but i tried and well ig i managed to do somethin extra padding fixes for main site add a random page (not yet live) and todo list for what i wanna add later install svelte-lanyard for discord status fetching add extra library functions for timezone information remove unused lib function add timezone information to random page fix tab size in a file"}, {"post_id": 49588, "ts": "2026-08-18T14:00:45Z", "hours": 0.4336, "text": "short devlog because exam tomorrow but I CANT LET MY HACKATIME STREAK DIE AGAIN removed debug line left in prod from last devlog add a favicon of my cat :3 rename communities to organizations in change one of the roles to normal hackclub members add description field to orgs add org display in projects page removed blog link from main page (and prob the actual page soon) in favor of smthin else"}, {"post_id": 48953, "ts": "2026-08-17T15:06:13Z", "hours": 1.8106, "text": "finished with another project so i might as well finish this one remove located in line because i already disclose that in my bio fix curl special display to only if fecth / fix easter egg (background text) font display add vite, zed, nvim, cf, and claude skills and remove bash implemented projects page fix typescript errors with page props data spacing tweaks with main homepage animate skill icon hover resize skill icons and text to smaller size add heatmap to projects page moved heatmap url to index.ts lib tweaked card class styles to remove ugly border and add a nice shadow"}, {"post_id": 45190, "ts": "2026-08-11T14:45:36Z", "hours": 1.6867, "text": "this is longer than expected but oh well. i was too tired to work on any real projects because its a school night (yes indonesia doesnt have long summer breaks 😭) so back onto personal site i guess update personal information fields: description, skills, and roles update skill display to use icons from simpleicons cdn added hover to show skill name functionality added devops eng to roles because someone said i had devops skills from another project fix background z index overlap clarity for timezone refresh local timezone display every second remove card effect for transparent display on the guestbook havent worked on project showcase nor blog posts pages yet because i need to finish my blog first and figure out how to get git repos from forgejo api"}, {"post_id": 37466, "ts": "2026-07-30T07:17:24Z", "hours": 4.8781, "text": "admittedly working on existing projects is much easier than starting from scratch. ill be working on my personal website whenever i get burnt out from other stuff (especially chess programming) anyways i didnt really remember much on what i did because i thought i wouldnt end up working for hours and didnt think it wouldve been worth it to submit for stardance. well turns out i accumulated a lot of hours logged but no memory on what i did so heres my best recall on what i did: added dotted background grid slimmer card body made a card class for a more unified design added support for more than 1 webrings tweaked webring design and functions replaced links with website pages made a WIP component for empty pages made 3 pages: guestbook, posts, and project showcase click to copy curl command added hackatime heatmap"}]...
|
Title: Personal Website by @satr14 | Stardance
De Title: Personal Website by @satr14 | Stardance
Devlogs:
admittedly working on existing projects is much easier than starting from scratch. ill be working on my personal website whenever i get burnt out from other stuff (especially chess programming) anyways i didnt really remember much on what i did because i thought i wouldnt end up working for hours and didnt think it wouldve been worth it to submit for stardance. well turns out i accumulated a lot of hours logged but no memory on what i did so heres my best recall on what i did: added dotted background grid slimmer card body made a card class for a more unified design added support for more than 1 webrings tweaked webring design and functions replaced links with website pages made a WIP component for empty pages made 3 pages: guestbook, posts, and project showcase click to copy curl command added hackatime heatmap
this is longer than expected but oh well. i was too tired to work on any real projects because its a school night (yes indonesia doesnt have long summer breaks 😭) so back onto personal site i guess update personal information fields: description, skills, and roles update skill display to use icons from simpleicons cdn added hover to show skill name functionality added devops eng to roles because someone said i had devops skills from another project fix background z index overlap clarity for timezone refresh local timezone display every second remove card effect for transparent display on the guestbook havent worked on project showcase nor blog posts pages yet because i need to finish my blog first and figure out how to get git repos from forgejo api
finished with another project so i might as well finish this one remove located in line because i already disclose that in my bio fix curl special display to only if fecth / fix easter egg (background text) font display add vite, zed, nvim, cf, and claude skills and remove bash implemented projects page fix typescript errors with page props data spacing tweaks with main homepage animate skill icon hover resize skill icons and text to smaller size add heatmap to projects page moved heatmap url to index.ts lib tweaked card class styles to remove ugly border and add a nice shadow
short devlog because exam tomorrow but I CANT LET MY HACKATIME STREAK DIE AGAIN removed debug line left in prod from last devlog add a favicon of my cat :3 rename communities to organizations in change one of the roles to normal hackclub members add description field to orgs add org display in projects page removed blog link from main page (and prob the actual page soon) in favor of smthin else
im not joking when i say im burnt out from school. the only thing thats keeping me driving for coding is stardance and the certificate (prob the shop items too but the cert is more important for me). anyways i didnt have much energy this past week but i tried and well ig i managed to do somethin extra padding fixes for main site add a random page (not yet live) and todo list for what i wanna add later install svelte-lanyard for discord status fetching add extra library functions for timezone information remove unused lib function add timezone information to random page fix tab size in a file
exams are coming soon but i really need these hours. anyways, all pages should be completed by now. im gonna deploy and ship soon added discord status via lanyard api and npm package added games played via lizardbyte’s free igdb api proxy tweaked page transition to be shorter and use 1 global variable removed unused WIP component tweaked timezone info text remove timezone info card element 9 commits in total
aight i have an exam tomorrow so prob not the best time to be working, but whatever. im gonna add some finishing details from now on as well as improve based of last ship’s feedback changed hackclub role (im organizing haven in my city :D) added more audios to be randomly played made song playback persist between pages keep player notif open showing playback bar and play/pause button tweak pages gaps and paddings displayed webring name instead of “info?” changed main quote hehe
i believe this shouldve been more time, because wakatime randomly stopped tracking time which shouldve been like 15-25 mins but whatever. now that its the weekend, im gonna cram as much hours i can get as this is still exam week. added background elements: idle rotating stars! made the stars turn into arrows when hovering over interactive elements / links added svelte page transitions for the conditional/fetching elements tweaked music player progress bar added a credit section for assets used and design inspiration changed timezone text display for same timezone offsets moved code duplication for styles and transitions to classes and central lib functions
smol update but i randomly had a thought last night before sleeping to add this so im adding it :D added rolling titles in the background based of the roles i put in
i was supposed to work on smthin else, but saw my friend do this so i decided to implement it on my own site! it took this long mainly because its a very new feature and not really documented. luckily, my friend gave me docs (which will be merged upstream) and i was able to implement this early :D. regardless it was still pretty buggy added discord embed component info using same data as the main site content https://github.com/discord/discord-api-docs/blob/20b7c0d2a7c30fd455d3e8f6e58c8ab42eeb2849/developers/link-previews/component-embeds.mdx early docs if yall wanna try it
Ships:
V5. IS OUT this was mainly challenging as school dumps work after work on me, but i ended up working on it in my spare time whenever i find it. new pages: /projects: contains orgs and repos /guestbook: github discussion powered /random: shows discord status and games i play
this should have fixes from last ship’s suggestions as well as a extra background elements and animations to make the site look alive...
|
1793004438.0008316
|
1793090838.0008316
|
|
61452
|
Simple Browser by @cosmic79conqueror | Stardance
|
cosmic79conqueror
|
1
|
4.91
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T07:29:27Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "basically i tried to make a simple browser page which is for sure the name of the project and it has all the basic functions of a normal modern browser like search news shortcuts music player histories ect. It also has a dark mode and it will automatically start in light mode.", "repo": "https://github.com/cosmic79conqueror-coder/custom-tab", "demo": "https://cosmic79conqueror-coder.github.io/custom-tab/"}]...
|
[{"post_id": 69011, "ts": "202 [{"post_id": 69011, "ts": "2026-09-16T06:44:33Z", "hours": 0.8928, "text": "just did some work"}, {"post_id": 67598, "ts": "2026-09-13T18:59:23Z", "hours": 1.0214, "text": "#devlog4 this time i made it a little bit more simpler than earlier and hope you like it this time."}, {"post_id": 67165, "ts": "2026-09-13T07:25:47Z", "hours": 0.4617, "text": "finally completed the project by adding some news and editing the background which changes with light mode and dark mode and now it has all basic functions of a browser"}, {"post_id": 67136, "ts": "2026-09-13T06:15:54Z", "hours": 1.4225, "text": "added some more features and a more simple and easy to use look to the browser with new shortcuts to google youtube and latest news section with a new music player and a sign in button"}, {"post_id": 66742, "ts": "2026-09-12T17:11:14Z", "hours": 1.4203, "text": "Finallyyy!!!!!! linked google with my browser. now i can search or jump to different websites also i added the dark mode option to match the system settings of most of the user and also some shortcuts to youtube google search."}]...
|
Title: Simple Browser by @cosmic79conqueror | Star Title: Simple Browser by @cosmic79conqueror | Stardance
Devlogs:
Finallyyy!!!!!! linked google with my browser. now i can search or jump to different websites also i added the dark mode option to match the system settings of most of the user and also some shortcuts to youtube google search.
added some more features and a more simple and easy to use look to the browser with new shortcuts to google youtube and latest news section with a new music player and a sign in button
finally completed the project by adding some news and editing the background which changes with light mode and dark mode and now it has all basic functions of a browser
#devlog4 this time i made it a little bit more simpler than earlier and hope you like it this time.
just did some work
Ships:
basically i tried to make a simple browser page which is for sure the name of the project and it has all the basic functions of a normal modern browser like search news shortcuts music player histories ect. It also has a dark mode and it will automatically start in light mode....
|
1793055348.9471273
|
1793141748.9471273
|
|
38932
|
trout by @nosrep | Stardance
|
nosrep
|
1
|
85.0
|
1696
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T06:51:47Z", "hours": 85.0, "multiplier": 16.67, "payout": 1696, "blessing": "neutral", "text": "welcome to trout v2! the goal of this period was to upgrade trout v1 to finally become the strongest chess engine written in haskell (it’s a cool title, ok). i believe it is done, and trout now beats the previous #1, barbarossa. writing a chess engine in haskell is hard and annoying and probably a not good use of my time, but i am stubborn and not very bright so here we are. writing a chess engine is also very annoying in general, involving thousands of hours of cpu time to test changes. everyone say thank you to my poor i7 10700k together with the +300elo (!!!) strength improvement over v1, i also corrected the engine’s time management (no more timing out in chess GUIs) and cleaned up the web interface. to play the engine, you have three options: the demo link: this has the web interface for trout. it’s the original engine compiled down to WASM with a nice ui on top. lichess bot: you can find the lichess bot link at the bottom of the demo website, @TroutBot . it’s running on an oracle free tier server and can only play two games simultaneously; if challenging it hangs, it’s probably playing 2 already. locally: if you want troutbot at peak performance, you can download a chess GUI like En Croissant or Arena, and configure the trout binary (on github releases) in the GUI. trout speaks the standard UCI protocol.", "repo": "https://github.com/Osrepnay/trout", "demo": "https://osrepnay.github.io/trout-web"}]...
|
[{"post_id": 67147, "ts": "202 [{"post_id": 67147, "ts": "2026-09-13T06:34:52Z", "hours": 1.16, "text": "I did some more frontend work! i made the chessground rank/file responsive: for some reason, the default ones are positioned by pixel offsets and break pretty quickly on smaller screens. some light css max fixes this recolored everything: stock chessground theme is kinda lame made the time slider exponential: I wanted to give a larger time range (previous is 100ms-1000ms), but everything past 1s on the high end makes it really unwieldy to set the time on the low end, where people usually play. i made it exponential, i can expand the top end (3000ms now) without the slider feeling weird. it’s easier to show than explain"}, {"post_id": 65064, "ts": "2026-09-09T22:19:08Z", "hours": 4.8239, "text": "managed to update the website to the new version. It was much easier than I expected, considering the amount of changes I’ve made. new version is better (besides just being stronger) in that I factored the iterative deepening code out, which means the website can have sensible time settings now instead of the stupid “max time per depth” thing it had before. I also implemented IIR (internal iterative reductions). I’ve tried it like 10 times before, but this specific version worked for some reason. +28 elo! engine is now safely better than barbarossa."}, {"post_id": 64248, "ts": "2026-09-08T14:43:59Z", "hours": 0.6486, "text": "2.0 release has been tagged! i set up a dockerfile to make static linux binaries and created a windows github action to make the windows binaries. I also finished the test against the last version of the engine:"}, {"post_id": 63549, "ts": "2026-09-07T13:53:00Z", "hours": 4.9844, "text": "it is done….. i think trout is the strongest haskell engine now (i made the passed pawn bonus tunable per-rank, which added around 20 elo. re-tested some other search stuff but they all kinda sucked) i think i’m going to work on polishing the frontend now, tag a 2.0 release soon."}, {"post_id": 62696, "ts": "2026-09-06T05:49:18Z", "hours": 8.5936, "text": "i’ve been doing some tuner work, it’s not great the old tuner was pretty bad. very janky, repeated code, very hard to read, and sloooowwww…. i optimized it by precomputing the factors for each position so it’s just a bunch of multiplications to get the score. upside: order of magnitude speed improvement. downside: 20+ gb memory…. other problem is that the new tuner’s results are not great. they aren’t horribly bad like some other tests, but the gains aren’t as big as i was expecting. this might be a data quality issue? i might write proper datagen code at some point instead of just relying on the output of SPRT tests. I did get a nice 7 elo from removing floating point ops in eval, so that’s nice i guess. i can smell the goal already. Soon (i would attach a picture of the 20gb but i’m kinda running a sprt right now… maybe next time)"}, {"post_id": 60920, "ts": "2026-09-03T16:06:58Z", "hours": 9.0614, "text": "big gap! some stuff came up and i don’t fully remember what i’ve done since the last devlog. git log tells me i did some minor logic fixes and added SEE pruning in pvs (32 elo), which prunes nodes based on their static exchange evaluation. i do remember that the current version of the engine can beat barbarossa at LTC now. STC it still loses (i.e. my engine scales better… glass half full), but I am now working on eval tuning to hopefully bump the elo up some more. i am now working on this through ssh. negative: lag. positive: there is almost nothing running on my computer aside from the language server. should make testing easier and more predictable"}, {"post_id": 43577, "ts": "2026-08-08T22:09:51Z", "hours": 8.8139, "text": "i’m now within 100 elo of my target, but it’s still not looking great. it seems i have hit another wall. there’s this copypasta around chess programming circles with a rough order of search features to implement, and i’ve tried 3 in a row, none doing much. since last time, i’ve just added two things that have gained elo: history decay tweak (10 elo): after searching a position, decay history by 50% instead of 80%, helps retain memory from previous searches check extensions (23 elo): extend a search by 1 more move if in check. it’s very simple. i’ve since tried IIR (internal iterative reductions), SEE pruning in PVS (more moveloop pruning), and continuation history (like the history heuristic, but More™️). only continuation history has kinda done something, but only when comparing against a version that’s just as slow; when comparing against the original, it’s much closer because for some reason continuation history slows down the search by almost 10% (??????). The main slow-down-er seems to be indexing the continuation history array, which is absolutely baffling to me. i’ve even tried to start reading the GHC Core again, until i remembered why it was so painful last time."}, {"post_id": 41607, "ts": "2026-08-05T22:20:00Z", "hours": 8.6608, "text": "a lot of changes in this batch, but not all of them were for strength. here’s a quick runthrough of the elo-affecting changes: add improving heuristic to rfp (prune more nodes while improving) add staticEval >= beta guard to nmp (restrict the usage of null move pruning to moves that already seem good from static eval) futility pruning (very similar to reverse futility pruning - removes quiet moves when static eval is pretty far below alpha) tempo bonus (side to move gets a bonus to eval for having tempo) add quiescence search results to transposition table (i had this in the old version but i guess i forgot to port it over until now) soft time bounds in search (instead of searching for as long as possible and nuking the search thread mid-search, stop iterative deepening if it looks like the next node will take too long) to fix this, i moved the timing-out logic inside the search function, which is what most engines do. I didn’t do this earlier because 1. it’s marginally harder and 2. it would require making the search functions IO instead of ST. ST is escapable, so it’s more pure, so this was kinda a bummer to do, but i didn’t see any way to get around this. here’s a graph i made while i was looking at aspiration windows more. it shows the average centipawn change between successive depths of search. the current aspiration window implementation assumes that depth and avg cp change is inversely related, but it doesn’t look like this is true. (what is the hump doing??) I tried a couple of aspiration window implementations that don’t make this assumption but didn’t get anything huge. I’ll probably replace it at some point."}, {"post_id": 39895, "ts": "2026-08-03T05:39:33Z", "hours": 5.7494, "text": "the engine is finally in the strongest state it’s ever been! (i think) for those who have not been obsessively following this project, the search part of the engine has gone through two rewrites now. i kept hitting walls where i really shouldn’t have; improvements that should have been huge gains did a lot less than expected. i did the rewrites in an attempt to find a potential bug that would kill future attempts at improvements, but i never really found anything significant. i never really got the engine to it’s pre-rewrites strength until now. read it and weep (~17 elo gain) -------------------------------------------------- Results of trout-exe-max vs trout-exe-asp-tweak (8+0.08, NULL, 16.000000MB, UHO_Lichess_4852_v1.epd): Elo: -16.96 +/- 14.18, nElo: -22.54 +/- 18.80 LOS: 0.94 %, DrawRatio: 33.99 %, PairsRatio: 0.82 Games: 1312, Wins: 380, Losses: 444, Draws: 488, Points: 624.0 (47.56 %) Ptnml(0-2): [63, 175, 223, 153, 42], WL/DD Ratio: 1.79 LLR: -2.98 (-101.3%) (-2.94, 2.94) [0.00, 10.00] -------------------------------------------------- it’s still not super great because elo improvements are coming slooowww and we’re still only 17 elo up with many more features than before. it’s still nice, though. implemented since last devlog: “improving” heuristic (13 elo): a position is said to be “improving” if the static evaluation now is higher than the one from a move ago. we can use this to tweak some parameters in the search, like when to cut off for LMP, which is what i did. need more testing for the other features. lmr limit (16 elo): my LMR implementation was slightly bugged and would reduce too many moves; normally the first couple are spared, but i had every move except the first reduced. negative captures below quiet moves (13 elo): for some reason, i had captures that were deemed negative by SEE (bad captures, basically - trading a queen for a pawn would be one) sorted above all quiet moves. i moved them to the bottom of move sorting. redo aspiration windows (36 elo): i redid the implementation for aspiration windows slightly. it should be smarter about bounds now. that makes around 100 elo for aspiration windows cumulatively now, which is kinda crazy here’s a picture of htop when i was running the engines against each othe for elo testing. i thought it was kinda funny"}, {"post_id": 38604, "ts": "2026-08-01T02:40:06Z", "hours": 8.2208, "text": "oh no, 8 hours i need to devlog more holy moly from last devlog, i kinda found a solution to the fail-soft problem? Most engine’s LMR implementations will re-search twice if the previous search went over alpha (lower bound). The first search has reduced depth AND a null-window around alpha (search window of 1 centipawn; searches faster, but can only tell the direction of the true search result); if this is over alpha, it’ll re-search with full depth; if this is again over alpha, it’ll re-search with full depth and full bounds. My engine was skipping the middle step and jumping from reduced depth + null window -> full depth + full bounds. Apparently this is an accepted method and it was working fine compared to the other version, EXCEPT once I switched to fail-soft on beta. in other news, I added: aspiration windows (75 elo): the initial search is normally unbounded, but aspiration windows try to clamp the search around a “guess” based on the previous depth of iterative deepening, and widen if it fails high or low. it did almost nothing before, and randomly became really good. don’t ask me why. razoring (22 elo): prunes a node if quiescence search says it’s too far below alpha. I already had it in a previous version and brought it over to the search rewrite. pretty simple, smallish elo boost. late move pruning (39 elo): prunes the latter part of move list; moves are sorted by how good they’re predicted to be, so latter moves are usually pretty garbage fixes (23 elo): small logic changes to LMR and LMP. don’t know how they didn’t lose more elo, the LMR bug was kinda bad. separate PV tracking: the PV (principal variation, the best moves for each player as calculated by the engine) was previously tracked by the transposition table, but that meant i didn’t have a lot of flexibility with the replacement strategy for the table, lest it wipe an important PV entry. tracking it separately lets me fiddle with the replacement strategy more, although I haven’t actually found one better than what I have now here’s a graph generated from a google sheet with 100k rows (!?). it’s a histogram of every time a move was marked as “currently the best”, indexed by entry. ideally, it’d be all 0, meaning the best move was searched first every time, meaning there was basically no wasted effort."}, {"post_id": 37391, "ts": "2026-07-30T02:23:34Z", "hours": 6.5078, "text": "6.5 hours? oh man i was right, nmp only gained like 30 elo, gained much much more before. i tried to hunt down anything weird but i had to leave it at that. i also implemented pruning in quiescence search, so the engine only searches moves that have a positive static exchange evaluation (essentially, the result of all trades on a particular square). i also accidentally found out my engine was doing fail-hard on beta cutoffs instead of fail-soft! in a fail-soft framework, the search is allowed to return outside of the bounds set by the alpha and beta parameters (it’s hard to explain succinctly here and i don’t want to keep doing it, search up alpha-beta search if you’re interested). thus, alpha and beta are soft bounds. this means each search returns more information about the move score. i successfully did fail-soft on the alpha (lower bound) side, but not on the beta side due to what i can only assume is a coding mistake. the problem is, when switching to fail-soft on beta, the engine lost like 30 elo! i bisected the change to the LMR (late move reductions) patch, but still have no idea why LMR doesn’t play nice with fail-soft beta. i’m kinda at the end of my rope here, i might just have to eat the elo loss…"}, {"post_id": 36088, "ts": "2026-07-27T23:22:04Z", "hours": 5.5464, "text": "I finally got RFP to gain! but it might not be as good as it seems… ive been struggling to get rfp, a pretty basic improvement, to actually do anything, and redid everything search step-by-step to make sure i didn’t do anything wrong. so far, i’ve added back SEE move ordering, butterfly heuristic, PVS, transposition table move ordering, and RFP. however, i don’t think this actually fixes my problem; the code is largely the same aside from some parameter changes, so my theory is that rfp is only working now because i added everything back in a different order, and now i might struggle with adding back different features that aren’t gaining anymore. i’m currently testing null move pruning (based on the null move observation: doing something is basically always better than doing nothing), and it’s not doing as much as it used to… disturbing"}, {"post_id": 35484, "ts": "2026-07-26T23:08:41Z", "hours": 1.4153, "text": "ive nuked it…. i kept fighting rfp and talking with other people about this. apparently, rfp is one of the easiest gainers (something that gains elo/strength), and usually gains a lot, but again, nothing. i ran an overnight test of like 5000 games and the rfp version manages to LOSE 8 elo, where other people have gained 80. i’m gonna try to restart search again, but basically fully. i don’t know if this will actually do anything, but i don’t see many other choices…"}, {"post_id": 34984, "ts": "2026-07-26T03:58:38Z", "hours": 6.8525, "text": "i’ve reentered the nightmare when i last left off this project in ~september, I basically hit a wall with optimizations. I had a crapload of pruning and whatnot, but the elo of the engine didn’t really reflect it. I then did a search rewrite but got stuck on RFP (reverse futility pruning), which is supposed to gain a lot of strength but did basically nothing for me. brief (??) aside: reverse futility pruning, in simple terms, checks if the static evaluation (evaluation without searching moves) is above beta (if a move scores above beta, it’s “too good,” and the opponent won’t allow that position to happen in the first place) by some margin. if it is, it’ll return without searching any moves, because it’s not likely that the player can lose that much material/positional advantage in whatever depth is left to search. anyway, i’m still stuck on this. I’ve re-reimplemented half the search to recheck its correctness, because correctness issues can sometimes stuff new optimizations, but it seems to be all good. RFP still doesn’t do jack. i don’t really know where to go from here. I could just ignore it, but the fact that RFP doesn’t do anything (for reference, another engine dev i talked to got like 80 elo out of RFP, which is insane) is a troubling sign and might mean something else is wrong."}, {"post_id": 34363, "ts": "2026-07-25T00:30:18Z", "hours": 3.7367, "text": "hello! trout again. i’m gonna try to get this to #1 haskell engine, but it’s been such a pain… after summer of making I did some more work on this, but hit a wall where all my changes either did nothing or gained like 10elo (which is not enough for the hundreds i need). I tried rewriting part of search but hit a wall again with the same problem, on features that should have made improvements! i’ve been fighting with the search some more trying to get reverse futility pruning to do something meaningful. in someone else’s engine, it gained i think 80+ elo in total (!!!), which is bonkers compared to the 20 or something i get on a good day. it’s not a good day, so RFP actually manages to lose elo here. i might have to rewrite search again. i don’t know how much of this is just wrong. (here’s the commented out old search)"}]...
|
Title: trout by @nosrep | Stardance
Devlogs:
hell Title: trout by @nosrep | Stardance
Devlogs:
hello! trout again. i’m gonna try to get this to #1 haskell engine, but it’s been such a pain… after summer of making I did some more work on this, but hit a wall where all my changes either did nothing or gained like 10elo (which is not enough for the hundreds i need). I tried rewriting part of search but hit a wall again with the same problem, on features that should have made improvements! i’ve been fighting with the search some more trying to get reverse futility pruning to do something meaningful. in someone else’s engine, it gained i think 80+ elo in total (!!!), which is bonkers compared to the 20 or something i get on a good day. it’s not a good day, so RFP actually manages to lose elo here. i might have to rewrite search again. i don’t know how much of this is just wrong. (here’s the commented out old search)
i’ve reentered the nightmare when i last left off this project in ~september, I basically hit a wall with optimizations. I had a crapload of pruning and whatnot, but the elo of the engine didn’t really reflect it. I then did a search rewrite but got stuck on RFP (reverse futility pruning), which is supposed to gain a lot of strength but did basically nothing for me. brief (??) aside: reverse futility pruning, in simple terms, checks if the static evaluation (evaluation without searching moves) is above beta (if a move scores above beta, it’s “too good,” and the opponent won’t allow that position to happen in the first place) by some margin. if it is, it’ll return without searching any moves, because it’s not likely that the player can lose that much material/positional advantage in whatever depth is left to search. anyway, i’m still stuck on this. I’ve re-reimplemented half the search to recheck its correctness, because correctness issues can sometimes stuff new optimizations, but it seems to be all good. RFP still doesn’t do jack. i don’t really know where to go from here. I could just ignore it, but the fact that RFP doesn’t do anything (for reference, another engine dev i talked to got like 80 elo out of RFP, which is insane) is a troubling sign and might mean something else is wrong.
ive nuked it…. i kept fighting rfp and talking with other people about this. apparently, rfp is one of the easiest gainers (something that gains elo/strength), and usually gains a lot, but again, nothing. i ran an overnight test of like 5000 games and the rfp version manages to LOSE 8 elo, where other people have gained 80. i’m gonna try to restart search again, but basically fully. i don’t know if this will actually do anything, but i don’t see many other choices…
I finally got RFP to gain! but it might not be as good as it seems… ive been struggling to get rfp, a pretty basic improvement, to actually do anything, and redid everything search step-by-step to make sure i didn’t do anything wrong. so far, i’ve added back SEE move ordering, butterfly heuristic, PVS, transposition table move ordering, and RFP. however, i don’t think this actually fixes my problem; the code is largely the same aside from some parameter changes, so my theory is that rfp is only working now because i added everything back in a different order, and now i might struggle with adding back different features that aren’t gaining anymore. i’m currently testing null move pruning (based on the null move observation: doing something is basically always better than doing nothing), and it’s not doing as much as it used to… disturbing
6.5 hours? oh man i was right, nmp only gained like 30 elo, gained much much more before. i tried to hunt down anything weird but i had to leave it at that. i also implemented pruning in quiescence search, so the engine only searches moves that have a positive static exchange evaluation (essentially, the result of all trades on a particular square). i also accidentally found out my engine was doing fail-hard on beta cutoffs instead of fail-soft! in a fail-soft framework, the search is allowed to return outside of the bounds set by the alpha and beta parameters (it’s hard to explain succinctly here and i don’t want to keep doing it, search up alpha-beta search if you’re interested). thus, alpha and beta are soft bounds. this means each search returns more information about the move score. i successfully did fail-soft on the alpha (lower bound) side, but not on the beta side due to what i can only assume is a coding mistake. the problem is, when switching to fail-soft on beta, the engine lost like 30 elo! i bisected the change to the LMR (late move reductions) patch, but still have no idea why LMR doesn’t play nice with fail-soft beta. i’m kinda at the end of my rope here, i might just have to eat the elo loss…
oh no, 8 hours i need to devlog more holy moly from last devlog, i kinda found a solution to the fail-soft problem? Most engine’s LMR implementations will re-search twice if the previous search went over alpha (lower bound). The first search has reduced depth AND a null-window around alpha (search window of 1 centipawn; searches faster, but can only tell the direction of the true search result); if this is over alpha, it’ll re-search with full depth; if this is again over alpha, it’ll re-search with full depth and full bounds. My engine was skipping the middle step and jumping from reduced depth + null window -> full depth + full bounds. Apparently this is an accepted method and it was working fine compared to the other version, EXCEPT once I switched to fail-soft on beta. in other news, I added: aspiration windows (75 elo): the initial search is normally unbounded, but aspiration windows try to clamp the search around a “guess” based on the previous depth of iterative deepening, and widen if it fails high or low. it did almost nothing before, and randomly became really good. don’t ask me why. razoring (22 elo): prunes a node if quiescence search says it’s too far below alpha. I already had it in a previous version and brought it over to the search rewrite. pretty simple, smallish elo boost. late move pruning (39 elo): prunes the latter part of move list; moves are sorted by how good they’re predicted to be, so latter moves are usually pretty garbage fixes (23 elo): small logic changes to LMR and LMP. don’t know how they didn’t lose more elo, the LMR bug was kinda bad. separate PV tracking: the PV (principal variation, the best moves for each player as calculated by the engine) was previously tracked by the transposition table, but that meant i didn’t have a lot of flexibility with the replacement strategy for the table, lest it wipe an important PV entry. tracking it separately lets me fiddle with the replacement strategy more, although I haven’t actually found one better than what I have now here’s a graph generated from a google sheet with 100k rows (!?). it’s a histogram of every time a move was marked as “currently the best”, indexed by entry. ideally, it’d be all 0, meaning the best move was searched first every time, meaning there was basically no wasted effort.
the engine is finally in the strongest state it’s ever been! (i think) for those who have not been obsessively following this project, the search part of the engine has gone through two rewrites now. i kept hitting walls where i really shouldn’t have; improvements that should have been huge gains did a lot less than expected. i did the rewrites in an attempt to find a potential bug that would kill future attempts at improvements, but i never really found anything significant. i never really got the engine to it’s pre-rewrites strength until now. read it and weep (~17 elo gain) -------------------------------------------------- Results of trout-exe-max vs trout-exe-asp-tweak (8+0.08, NULL, 16.000000MB, UHO_Lichess_4852_v1.epd): Elo: -16.96 +/- 14.18, nElo: -22.54 +/- 18.80 LOS: 0.94 %, DrawRatio: 33.99 %, PairsRatio: 0.82 Games: 1312, Wins: 380, Losses: 444, Draws: 488, Points: 624.0 (47.56 %) Ptnml(0-2): [63, 175, 223, 153, 42], WL/DD Ratio: 1.79 LLR: -2.98 (-101.3%) (-2.94, 2.94) [0.00, 10.00] -------------------------------------------------- it’s still not super great because elo improvements are coming slooowww and we’re still only 17 elo up with many more features than before. it’s still nice, though. implemented since last devlog: “improving” heuristic (13 elo): a position is said to be “improving” if the static evaluation now is higher than the one from a move ago. we can use this to tweak some parameters in the search, like when to cut off for LMP, which is what i did. need more testing for the other features. lmr limit (16 elo): my LMR implementation was slightly bugged and would reduce too many moves; normally the first couple are spared, but i had every move except the first reduced. negative captures below quiet moves (13 elo): for some reason, i had captures that were deemed negative by SEE (bad captures, basically - trading a queen for a pawn would be one) sorted above all quiet moves. i moved them to the bottom of move sorting. redo aspiration windows (36 elo): i redid the implementation for aspiration windows slightly. it should be smarter about bounds now. that makes around 100 elo for aspiration windows cumulatively now, which is kinda crazy here’s a picture of htop when i was running the engines against each othe for elo testing. i thought it was kinda funny
a lot of changes in this batch, but not all of them were for strength. here’s a quick runthrough of the elo-affecting changes: add improving heuristic to rfp (prune more nodes while improving) add staticEval >= beta guard to nmp (restrict the usage of null move pruning to moves that already seem good from static eval) futility pruning (very similar to reverse futility pruning - removes quiet moves when static eval is pretty far below alpha) tempo bonus (side to move gets a bonus to eval for having tempo) add quiescence search results to transposition table (i had this in the old version but i guess i forgot to port it over until now) soft time bounds in search (instead of searching for as long as possible and nuking the search thread mid-search, stop iterative deepening if it looks like the next node will take too long) to fix this, i moved the timing-out logic inside the search function, which is what most engines do. I didn’t do this earlier because 1. it’s marginally harder and 2. it would require making the search functions IO instead of ST. ST is escapable, so it’s more pure, so this was kinda a bummer to do, but i didn’t see any way to get around this. here’s a graph i made while i was looking at aspiration windows more. it shows the average centipawn change between successive depths of search. the current aspiration window implementation assumes that depth and avg cp change is inversely related, but it doesn’t look like this is true. (what is the hump doing??) I tried a couple of aspiration window implementations that don’t make this assumption but didn’t get anything huge. I’ll probably replace it at some point.
i’m now within 100 elo of my target, but it’s still not looking great. it seems i have hit another wall. there’s this copypasta around chess programming circles with a rough order of search features to implement, and i’ve tried 3 in a row, none doing much. since last time, i’ve just added two things that have gained elo: history decay tweak (10 elo): after searching a position, decay history by 50% instead of 80%, helps retain memory from previous searches check extensions (23 elo): extend a search by 1 more move if in check. it’s very simple. i’ve since tried IIR (internal iterative reductions), SEE pruning in PVS (more moveloop pruning), and continuation history (like the history heuristic, but More™️). only continuation history has kinda done something, but only when comparing against a version that’s just as slow; when comparing against the original, it’s much closer because for some reason continuation history slows down the search by almost 10% (??????). The main slow-down-er seems to be indexing the continuation history array, which is absolutely baffling to me. i’ve even tried to start reading the GHC Core again, until i remembered why it was so painful last time.
big gap! some stuff came up and i don’t fully remember what i’ve done since the last devlog. git log tells me i did some minor logic fixes and added SEE pruning in pvs (32 elo), which prunes nodes based on their static exchange evaluation. i do remember that the current version of the engine can beat barbarossa at LTC now. STC it still loses (i.e. my engine scales better… glass half full), but I am now working on eval tuning to hopefully bump the elo up some more. i am now working on this through ssh. negative: lag. positive: there is almost nothing running on my computer aside from the language server. should make testing easier and more predictable
i’ve been doing some tuner work, it’s not great the old tuner was pretty bad. very janky, repeated code, very hard to read, and sloooowwww…. i optimized it by precomputing the factors for each position so it’s just a bunch of multiplications to get the score. upside: order of magnitude speed improvement. downside: 20+ gb memory…. other problem is that the new tuner’s results are not great. they aren’t horribly bad like some other tests, but the gains aren’t as big as i was expecting. this might be a data quality issue? i might write proper datagen code at some point instead of just relying on the output of SPRT tests. I did get a nice 7 elo from removing floating point ops in eval, so that’s nice i guess. i can smell the goal already. Soon (i would attach a picture of the 20gb but i’m kinda running a sprt right now… maybe next time)
it is done….. i think trout is the strongest haskell engine now (i made the passed pawn bonus tunable per-rank, which added around 20 elo. re-tested some other search stuff but they all kinda sucked) i think i’m going to work on polishing the frontend now, tag a 2.0 release soon.
2.0 release has been tagged! i set up a dockerfile to make static linux binaries and created a windows github action to make the windows binaries. I also finished the test against the last version of the engine:
managed to update the website to the new version. It was much easier than I expected, considering the amount of changes I’ve made. new version is better (besides just being stronger) in that I factored the iterative deepening code out, which means the website can have sensible time settings now instead of the stupid “max time per depth” thing it had before. I also implemented IIR (internal iterative reductions). I’ve tried it like 10 times before, but this specific version worked for some reason. +28 elo! engine is now safely better than barbarossa.
I did some more frontend work! i made the chessground rank/file responsive: for some reason, the default ones are positioned by pixel offsets and break pretty quickly on smaller screens. some light css max fixes this recolored everything: stock chessground theme is kinda lame made the time slider exponential: I wanted to give a larger time range (previous is 100ms-1000ms), but everything past 1s on the high end makes it really unwieldy to set the time on the low end, where people usually play. i made it exponential, i can expand the top end (3000ms now) without the slider feeling weird. it’s easier to show than explain
Ships:
welcome to trout v2! the goal of this period was to upgrade trout v1 to finally become the strongest chess engine written in haskell (it’s a cool title, ok). i believe it is done, and trout now beats the previous #1, barbarossa. writing a chess engine in haskell is hard and annoying and probably a not good use of my time, but i am stubborn and not very bright so here we are. writing a chess engine is also very annoying in general, involving thousands of hours of cpu time to test changes. everyone say thank you to my poor i7 10700k together with the +300elo (!!!) strength improvement over v1, i also corrected the engine’s time management (no more timing out in chess GUIs) and cleaned up the web interface. to play the engine, you have three options: the demo link: this has the web interface for trout. it’s the original engine compiled down to WASM with a nice ui on top. lichess bot: you can find the lichess bot link at the bottom of the demo website, @TroutBot . it’s running on an oracle free tier server and can only play two games simultaneously; if challenging it hangs, it’s probably playing 2 already. locally: if you want troutbot at peak performance, you can download a chess GUI like En Croissant or Arena, and configure the trout binary (on github releases) in the GUI. trout speaks the standard UCI protocol....
|
1793005026.9363291
|
1793091426.9363291
|
|
61060
|
Fujibot by @fuchstu | Stardance
|
fuchstu
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T06:32:25Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A simple Slack bot powered by Wispbythe, featuring AI chat and useful commands like roll, ping, and timer. Currently its hosted by Wispbythe but i will switch to Nest.", "repo": "https://github.com/Foxiified/SimpleSlackbot", "demo": "https://hackclub.enterprise.slack.com/archives/C0P5NE354"}]...
|
[{"post_id": 67143, "ts": "202 [{"post_id": 67143, "ts": "2026-09-13T06:29:46Z", "hours": 0.5956, "text": "Added 24/7 Support a bit unstable, i will switch to nest soon"}, {"post_id": 66595, "ts": "2026-09-12T13:20:49Z", "hours": 1.5022, "text": "Slackbot"}]...
|
Title: Fujibot by @fuchstu | Stardance
Devlogs:
S Title: Fujibot by @fuchstu | Stardance
Devlogs:
Slackbot
Added 24/7 Support a bit unstable, i will switch to nest soon
Ships:
A simple Slack bot powered by Wispbythe, featuring AI chat and useful commands like roll, ping, and timer. Currently its hosted by Wispbythe but i will switch to Nest....
|
1793055292.8740911
|
1793141692.8740911
|
|
53171
|
a blackjack game by @sanjaysatheesh417 | Stardance
|
sanjaysatheesh417
|
1
|
2.0
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T06:22:24Z", "hours": 2.0, "multiplier": 1.12, "payout": 3, "blessing": "neutral", "text": "i created a simple blackjack game using CSS ,html and javascript. i have used AI to add the images for the cards and improved styling.", "repo": "https://github.com/sanjaysatheesh417-cyber/blackjackgame", "demo": "https://blackjackgame-6gp8.onrender.com/"}]...
|
[{"post_id": 67139, "ts": "202 [{"post_id": 67139, "ts": "2026-09-13T06:20:48Z", "hours": 0.2656, "text": "enhanced the game by adding images for cards and improved style using ai."}, {"post_id": 67122, "ts": "2026-09-13T05:42:05Z", "hours": 1.4964, "text": "i just added the working algorithm of a blackjack game. using objects to display the player name and his credits, rendering random numbers that indicate the cards, css buttons to let you start the game or draw a new card and the logic where it tells u if you have gotten blackjack or not."}, {"post_id": 52841, "ts": "2026-08-23T06:14:00Z", "hours": 0.7069, "text": "a simple playable blackjack game using html, css and javascript. initial styling done!!"}]...
|
Title: a blackjack game by @sanjaysatheesh417 | St Title: a blackjack game by @sanjaysatheesh417 | Stardance
Devlogs:
a simple playable blackjack game using html, css and javascript. initial styling done!!
i just added the working algorithm of a blackjack game. using objects to display the player name and his credits, rendering random numbers that indicate the cards, css buttons to let you start the game or draw a new card and the logic where it tells u if you have gotten blackjack or not.
enhanced the game by adding images for cards and improved style using ai.
Ships:
i created a simple blackjack game using CSS ,html and javascript. i have used AI to add the images for the cards and improved styling....
|
1793008061.5847216
|
1793094461.5847216
|
|
60007
|
My own site! by @Emmanuelfadipe69 | Stardance
|
Emmanuelfadipe69
|
1
|
19.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T05:45:42Z", "hours": 19.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a personal website using HTML, CSS, and JavaScript. While building the website one of the challenges was getting the entire website layout to work properly across different screen sizes without looking either stretched or reduced. Another problem was putting backgrounds especially ones that functions as a slide show in the home page. Am proud of completing the website to see that all challenges i faced while building the website has been resolved and that the website is looking exactly like the want it to look. I would tell people to open my website and explore the navigation as well as the interactive features, and also take their time to check out my devlog on my website. Thank you for taking your time to check out my project.", "repo": "https://github.com/emmanuelfadipe69-tech/stardance-personal-website", "demo": "https://emmanuelfadipe69-tech.github.io/stardance-personal-website/"}]...
|
[{"post_id": 66946, "ts": "202 [{"post_id": 66946, "ts": "2026-09-12T22:26:21Z", "hours": 8.0117, "text": "Day 3 & 4 - While building my website i learnt more css properties that would help in structuring the website to be able to fit to size in both phones and desktops. I thought that what if someone was to open my website on a mobile phone, will the background look stretched cause it was initially programmed to fit desktop sizes, so i researched on how to solve that and was able to solve the problem. Also i moved forward to javascript so as to customize my website so it could have a form of slide-show in the home page and make the website come alive. I also added certain emojis and logo so as to add more visuals to the website, and i also added a readme to explain more about my website"}, {"post_id": 65861, "ts": "2026-09-11T09:14:08Z", "hours": 5.6239, "text": "Day 2- Following yesterday’s progress while building my website, i was able to perfect the html structure and and then i went over to finish my css style, but after previewing the website i figured that the background i put for the website didn’t suit a proper website at all as all the section in the whole website had the same background making it look more like a poster than a website. Then i went back again to restructure the css style so the website has more than a single background, and that the background should vary bringing out a colorful and professional portfolio website. Thank you"}, {"post_id": 65306, "ts": "2026-09-10T11:19:30Z", "hours": 5.4156, "text": "Day 1- Yesterday i started building my very own personal website, though i had conflict within myself what the website should contain i ended up deciding. I started by setting up the project in VS code and began working on the website starting with structure and it kinda went smooth cause i already decided on what i wanted to see in the website. After working on my html structure i decided to move onto the css styling and somehow that also went fine until i previewed the website using the live server and opened it in chrome to preview it and somehow i didn’t like the layout i created the centered words didn’t look like what i actually thought i would love and had to go back to my styling one again to correct them, through out yesterday i was stuck determining and perfecting the format to which the text were going to be in and i was finally able to put some in the centre and others in the left side. This problem also allowed me to discover more css properties that i could use when creating websites. Thank you"}]...
|
Title: My own site! by @Emmanuelfadipe69 | Stardan Title: My own site! by @Emmanuelfadipe69 | Stardance
Devlogs:
Day 1- Yesterday i started building my very own personal website, though i had conflict within myself what the website should contain i ended up deciding. I started by setting up the project in VS code and began working on the website starting with structure and it kinda went smooth cause i already decided on what i wanted to see in the website. After working on my html structure i decided to move onto the css styling and somehow that also went fine until i previewed the website using the live server and opened it in chrome to preview it and somehow i didn’t like the layout i created the centered words didn’t look like what i actually thought i would love and had to go back to my styling one again to correct them, through out yesterday i was stuck determining and perfecting the format to which the text were going to be in and i was finally able to put some in the centre and others in the left side. This problem also allowed me to discover more css properties that i could use when creating websites. Thank you
Day 2- Following yesterday’s progress while building my website, i was able to perfect the html structure and and then i went over to finish my css style, but after previewing the website i figured that the background i put for the website didn’t suit a proper website at all as all the section in the whole website had the same background making it look more like a poster than a website. Then i went back again to restructure the css style so the website has more than a single background, and that the background should vary bringing out a colorful and professional portfolio website. Thank you
Day 3 & 4 - While building my website i learnt more css properties that would help in structuring the website to be able to fit to size in both phones and desktops. I thought that what if someone was to open my website on a mobile phone, will the background look stretched cause it was initially programmed to fit desktop sizes, so i researched on how to solve that and was able to solve the problem. Also i moved forward to javascript so as to customize my website so it could have a form of slide-show in the home page and make the website come alive. I also added certain emojis and logo so as to add more visuals to the website, and i also added a readme to explain more about my website
Ships:
I built a personal website using HTML, CSS, and JavaScript. While building the website one of the challenges was getting the entire website layout to work properly across different screen sizes without looking either stretched or reduced. Another problem was putting backgrounds especially ones that functions as a slide show in the home page. Am proud of completing the website to see that all challenges i faced while building the website has been resolved and that the website is looking exactly like the want it to look. I would tell people to open my website and explore the navigation as well as the interactive features, and also take their time to check out my devlog on my website. Thank you for taking your time to check out my project....
|
1793055113.71781
|
1793141513.71781
|