|
286
|
My Website by @stefdp | Stardance
|
stefdp
|
2
|
7.75
|
28
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-29T10:49:14Z", "hours": 3.0, "multiplier": 5.13, "payout": 16, "blessing": "neutral", "text": "I updated the webring code so that now: The webring is on the bottom right (moved neko credits from bottom right to bottom center), a bit more above the bottom so that on small screens like phones it doesn’t overlap with the credits It’s now vertical Added a new webring ( https://horser.ing , only for friends) and so i added a select to choose the ring and also a ?webring query that auto selects given ring (currently as values there’s hackclub for hc ring and horsering for the horsering) it’s wasn’t really challenging, only thing that took me a bit was find out which class added a horizontal padding to the select cuz none of my tailwind classes added it, then i found out it was DaisyUI’s btn class", "repo": "https://git.stefdp.com/Stef/personal-site", "demo": "https://stefdp.com"}, {"ship_num": 2, "ts": "2026-06-06T12:53:05Z", "hours": 1.0, "multiplier": 8.07, "payout": 12, "blessing": "neutral", "text": "I added a switch for plain text & code in the about me section and switched from nix webring to hackclub webring nothnig was really challenging, only issue i had was that the webring iframe for some reason looked good on my laptop but when i pushed to prod it got some weird white bg, couldn’t figure out how to fix it so i just ended up making my own buttons (and also added a random page button which official webring doesn’t have! :D)", "repo": "https://git.stefdp.com/Stef/personal-site", "demo": "https://stefdp.com"}]...
|
[{"post_id": 71777, "ts": "202 [{"post_id": 71777, "ts": "2026-09-21T15:03:47Z", "hours": 2.6286, "text": "Updated the main embed to add social links and page specific text/images too and also fix buttons’ urls"}, {"post_id": 70204, "ts": "2026-09-18T18:12:30Z", "hours": 1.1197, "text": "Added the new discord embed with components v2"}, {"post_id": 36934, "ts": "2026-07-29T10:42:29Z", "hours": 0.4753, "text": "Made the horizontal padding of the select smaller I legit couldn’t find what that padding was caused by cuz i didn’t have any p* classes and after like 20 mins i found out that it was the DaisyUI’s btn class that added padding-inline 🥀 so i fixed it with px-2 (which in tailwind stands for 0.5rem or 8px"}, {"post_id": 36485, "ts": "2026-07-28T16:54:50Z", "hours": 2.4244, "text": "Added the Horsering in the rings (friend only ring) Moved the neko credits in the middle Moved the webring on the right and made it vertical"}, {"post_id": 3493, "ts": "2026-06-06T13:36:40Z", "hours": 0.2644, "text": "Updated the README.md (I had forgot to update it before shipping 😭)"}, {"post_id": 3467, "ts": "2026-06-06T12:47:26Z", "hours": 1.4947, "text": "Added a “Switch to Code/Plain Text” in the about me so people who don’t know Typescript can just read it as plain text Moved from Nix Webring to Hack Club Webring since i don’t use NixOS anymore"}]...
|
Title: My Website by @stefdp | Stardance
Devlogs: Title: My Website by @stefdp | Stardance
Devlogs:
Added a “Switch to Code/Plain Text” in the about me so people who don’t know Typescript can just read it as plain text Moved from Nix Webring to Hack Club Webring since i don’t use NixOS anymore
Updated the README.md (I had forgot to update it before shipping 😭)
Added the Horsering in the rings (friend only ring) Moved the neko credits in the middle Moved the webring on the right and made it vertical
Made the horizontal padding of the select smaller I legit couldn’t find what that padding was caused by cuz i didn’t have any p* classes and after like 20 mins i found out that it was the DaisyUI’s btn class that added padding-inline 🥀 so i fixed it with px-2 (which in tailwind stands for 0.5rem or 8px
Added the new discord embed with components v2
Updated the main embed to add social links and page specific text/images too and also fix buttons’ urls
Ships:
I added a switch for plain text & code in the about me section and switched from nix webring to hackclub webring nothnig was really challenging, only issue i had was that the webring iframe for some reason looked good on my laptop but when i pushed to prod it got some weird white bg, couldn’t figure out how to fix it so i just ended up making my own buttons (and also added a random page button which official webring doesn’t have! :D)
I updated the webring code so that now: The webring is on the bottom right (moved neko credits from bottom right to bottom center), a bit more above the bottom so that on small screens like phones it doesn’t overlap with the credits It’s now vertical Added a new webring ( https://horser.ing , only for friends) and so i added a select to choose the ring and also a ?webring query that auto selects given ring (currently as values there’s hackclub for hc ring and horsering for the horsering) it’s wasn’t really challenging, only thing that took me a bit was find out which class added a horizontal padding to the select cuz none of my tailwind classes added it, then i found out it was DaisyUI’s btn class...
|
1792994097.8270423
|
1793080497.8270423
|
|
285
|
Garden Produce Checker by @Ventengo | Stardance
|
Ventengo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Garden Produce Checker by @Ventengo | Stard Title: Garden Produce Checker by @Ventengo | Stardance...
|
1792522250.6616337
|
1793127050.6616337
|
|
284
|
Untitled by @SeradedStripes | Stardance
|
SeradedStripes
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @SeradedStripes | Stardance
|
1792533264.9991643
|
1793138064.9991643
|
|
283
|
Welle by @lumentae | Stardance
|
lumentae
|
0
|
33.46
|
0
|
[]
|
[{"post_id": 43224, "ts": "202 [{"post_id": 43224, "ts": "2026-08-08T11:14:05Z", "hours": 0.61, "text": "I updated the artist list and the song list to look better by adding margin between each entry and rounding the images a bit!"}, {"post_id": 39465, "ts": "2026-08-02T13:03:47Z", "hours": 2.0208, "text": "The artists page is now implemented! Also I kinda forgot about this project lol"}, {"post_id": 27904, "ts": "2026-07-13T20:34:56Z", "hours": 1.2594, "text": "I added some code to request all the playlists for the current user and also wrote some QML to display it in the sidebar! Currently they don’t have any icons or cover art, but I’m going to implement that soon™"}, {"post_id": 27747, "ts": "2026-07-13T16:04:28Z", "hours": 2.4331, "text": "I kinda forgot to post a devlog, but I have implemented support for a database and now they’re loaded from there first instead of having to request them all the time from the Navidrome server. Also I fixed the annoying QML error that a class couldn’t be instantiated if it didn’t match the constructor or something like that (I forgot…)"}, {"post_id": 21794, "ts": "2026-07-03T22:13:19Z", "hours": 1.3036, "text": "I have implemented a simple queue list at the right side! It’s still pretty useless and only serves the purpose of being able to see what will be played, but it’s still nice to have and expanded on in the future! Also sorry again for a long time between updates…"}, {"post_id": 17313, "ts": "2026-06-28T01:14:48Z", "hours": 0.6122, "text": "I added a simple context menu! (I’m way more productive with the todo list…)"}, {"post_id": 17256, "ts": "2026-06-27T23:37:42Z", "hours": 1.3014, "text": "I added a volume slider! Not much to add but that I was working on another project the last few days so development was halted for a short bit, but will now pick up again!"}, {"post_id": 13307, "ts": "2026-06-21T19:43:59Z", "hours": 3.0239, "text": "I added support for MPRIS and I found out that it’s actually a quite interesting protocol (uses microseconds instead of milliseconds, which I found out the hard way…). Also I moved everything audio related to medialib so I can reuse most code for a future TUI or web interface!"}, {"post_id": 13030, "ts": "2026-06-21T09:39:29Z", "hours": 0.8406, "text": "I fixed a bug with cmake downloading the Material Symbols font as a css stylesheet and QML was trying to load it as a font, but kept failing… Also I made a todo list with a few entries so I don’t forget what to work on 😭"}, {"post_id": 11972, "ts": "2026-06-19T15:22:31Z", "hours": 0.6294, "text": "I added a repeat and shuffle button! I also fixed the queue, since it didn’t add new songs when scrolling and only the first 100 songs were loaded!"}, {"post_id": 11536, "ts": "2026-06-18T20:41:36Z", "hours": 1.2825, "text": "I added a really simple queue that you cant view anywhere and not add songs right now, but works and the pause button now shows the current state of the song (playing and paused). Also I added skip buttons to play the previous or next song!"}, {"post_id": 10766, "ts": "2026-06-17T17:53:20Z", "hours": 2.0261, "text": "There’s now a pause and play button and I fixed a bug that crashed the program after playing another song after one finished 😭. I’ll add more media buttons like skipping or shuffle/repeat next!"}, {"post_id": 8415, "ts": "2026-06-13T23:57:44Z", "hours": 1.0186, "text": "Dragging works for seeking now. Also I’m sorry for not posting any devlogs the last week since I’ve been really busy with school lately (due to having to run shows…)"}, {"post_id": 3426, "ts": "2026-06-06T11:10:26Z", "hours": 1.2039, "text": "The text is now being elided correctly and the progress bar is finally centered! Also I started working on showing the song progress, but haven’t made it interactive yet"}, {"post_id": 3229, "ts": "2026-06-06T01:50:59Z", "hours": 2.5819, "text": "I improved the bottom bar, but the progress bar is still not how I like it. This has also made me realise how much I HATE layouts in QML"}, {"post_id": 2793, "ts": "2026-06-05T16:35:09Z", "hours": 2.2756, "text": "Music can now be played and I added an incomplete player bar at the bottom that doesn’t show much yet 😭. I first started working on the bottom bar without having done the player before so I was kinda stuck and had to implement the player so I could add the media controls like seek, current media information or the pause, play and stop buttons aswell as the volume slider (which I really need…)"}, {"post_id": 2483, "ts": "2026-06-05T00:09:40Z", "hours": 2.0244, "text": "The song list now infinitely scrolls and song cover art is now shown!"}, {"post_id": 2026, "ts": "2026-06-04T09:42:51Z", "hours": 0.9128, "text": "I remade the songlist and was inspired from Feishin’s design. I’ll implement the song covers and the home page next!"}, {"post_id": 1753, "ts": "2026-06-03T22:50:33Z", "hours": 1.9433, "text": "I added a simple sidebar which currently only shows the song list because I haven’t added page switching yet, but content pages can be loaded dynamically now!!"}, {"post_id": 1001, "ts": "2026-06-02T19:44:19Z", "hours": 2.1475, "text": "I reworked the OpenSubsonic API, added support for QML and created a simple song list. It was really hard to implement QML models and found out that QList::fromVector does not convert a std::vector to a QList 😭"}, {"post_id": 427, "ts": "2026-06-01T20:38:24Z", "hours": 1.5978, "text": "I got the authentication working and also its now possible to search for songs, artists and albums. Still no GUI or music player yet… 😅"}, {"post_id": 114, "ts": "2026-05-31T20:20:28Z", "hours": 0.4119, "text": "I created the rough project structure and already included dependencies for the Open Subsonic client, but have not written any code for it yet 😭. I will work on it tomorrow when I have more time and focus on getting the authorization and other things to work!"}]...
|
Title: Welle by @lumentae | Stardance
Devlogs:
I Title: Welle by @lumentae | Stardance
Devlogs:
I created the rough project structure and already included dependencies for the Open Subsonic client, but have not written any code for it yet 😭. I will work on it tomorrow when I have more time and focus on getting the authorization and other things to work!
I got the authentication working and also its now possible to search for songs, artists and albums. Still no GUI or music player yet… 😅
I reworked the OpenSubsonic API, added support for QML and created a simple song list. It was really hard to implement QML models and found out that QList::fromVector does not convert a std::vector to a QList 😭
I added a simple sidebar which currently only shows the song list because I haven’t added page switching yet, but content pages can be loaded dynamically now!!
I remade the songlist and was inspired from Feishin’s design. I’ll implement the song covers and the home page next!
The song list now infinitely scrolls and song cover art is now shown!
Music can now be played and I added an incomplete player bar at the bottom that doesn’t show much yet 😭. I first started working on the bottom bar without having done the player before so I was kinda stuck and had to implement the player so I could add the media controls like seek, current media information or the pause, play and stop buttons aswell as the volume slider (which I really need…)
I improved the bottom bar, but the progress bar is still not how I like it. This has also made me realise how much I HATE layouts in QML
The text is now being elided correctly and the progress bar is finally centered! Also I started working on showing the song progress, but haven’t made it interactive yet
Dragging works for seeking now. Also I’m sorry for not posting any devlogs the last week since I’ve been really busy with school lately (due to having to run shows…)
There’s now a pause and play button and I fixed a bug that crashed the program after playing another song after one finished 😭. I’ll add more media buttons like skipping or shuffle/repeat next!
I added a really simple queue that you cant view anywhere and not add songs right now, but works and the pause button now shows the current state of the song (playing and paused). Also I added skip buttons to play the previous or next song!
I added a repeat and shuffle button! I also fixed the queue, since it didn’t add new songs when scrolling and only the first 100 songs were loaded!
I fixed a bug with cmake downloading the Material Symbols font as a css stylesheet and QML was trying to load it as a font, but kept failing… Also I made a todo list with a few entries so I don’t forget what to work on 😭
I added support for MPRIS and I found out that it’s actually a quite interesting protocol (uses microseconds instead of milliseconds, which I found out the hard way…). Also I moved everything audio related to medialib so I can reuse most code for a future TUI or web interface!
I added a volume slider! Not much to add but that I was working on another project the last few days so development was halted for a short bit, but will now pick up again!
I added a simple context menu! (I’m way more productive with the todo list…)
I have implemented a simple queue list at the right side! It’s still pretty useless and only serves the purpose of being able to see what will be played, but it’s still nice to have and expanded on in the future! Also sorry again for a long time between updates…
I kinda forgot to post a devlog, but I have implemented support for a database and now they’re loaded from there first instead of having to request them all the time from the Navidrome server. Also I fixed the annoying QML error that a class couldn’t be instantiated if it didn’t match the constructor or something like that (I forgot…)
I added some code to request all the playlists for the current user and also wrote some QML to display it in the sidebar! Currently they don’t have any icons or cover art, but I’m going to implement that soon™
The artists page is now implemented! Also I kinda forgot about this project lol
I updated the artist list and the song list to look better by adding margin between each entry and rounding the images a bit!...
|
1792770758.5210757
|
1793375558.5210757
|
|
282
|
Hlack by @ee | Stardance
|
ee
|
0
|
0.67
|
0
|
[]
|
[{"post_id": 2699, "ts": "2026 [{"post_id": 2699, "ts": "2026-06-05T12:17:47Z", "hours": 0.2544, "text": "i hate websockets. i hate websockets. i hate websockets geniunely why does ts need to be this complicated. First I needed to make a venv bcz the download was being weird, that’s fine. THEN THEN THEN when i started running the extremely basic chat app, it just kept immediatly dropping the connection, which is normal cuz chrome right? BUT THEN i download the extension that’s supposed to make it work and it jst doesn’t uh what i made wise, I followed a W3 schools guide to make a basic websockets chat app."}, {"post_id": 737, "ts": "2026-06-02T11:13:45Z", "hours": 0.4197, "text": "hiya! I’ve decided what “framework” I will be using and I’m here to share. I won’t be using one! I went through like 5 of them, and none of them worked. Flutter - Demoing didn’t work React Native - Started deleting files Lynx - Demo was crashing my computer Sparkling (lynx kotlin ig) - Same as before So uh yeah! I’ll be using python to take and send requests to a database, then I’ll probably make the actual application with html/css or use tkui or wtv it’s called. So uh, yeah! I don’t really have a screenshot but uh this is the amount of times i tried to download the lynx explorer :c"}]...
|
Title: Hlack by @ee | Stardance
Devlogs:
hiya! I’ Title: Hlack by @ee | Stardance
Devlogs:
hiya! I’ve decided what “framework” I will be using and I’m here to share. I won’t be using one! I went through like 5 of them, and none of them worked. Flutter - Demoing didn’t work React Native - Started deleting files Lynx - Demo was crashing my computer Sparkling (lynx kotlin ig) - Same as before So uh yeah! I’ll be using python to take and send requests to a database, then I’ll probably make the actual application with html/css or use tkui or wtv it’s called. So uh, yeah! I don’t really have a screenshot but uh this is the amount of times i tried to download the lynx explorer :c
i hate websockets. i hate websockets. i hate websockets geniunely why does ts need to be this complicated. First I needed to make a venv bcz the download was being weird, that’s fine. THEN THEN THEN when i started running the extremely basic chat app, it just kept immediatly dropping the connection, which is normal cuz chrome right? BUT THEN i download the extension that’s supposed to make it work and it jst doesn’t uh what i made wise, I followed a W3 schools guide to make a basic websockets chat app....
|
1792572561.4086773
|
1793177361.4086773
|
|
281
|
Pond Extended by @hatya-mouse | Stardance
|
hatya-mouse
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Pond Extended by @hatya-mouse | Stardance
|
1792936381.185834
|
1793800381.185834
|
|
280
|
Ks' Corner by @Ks | Stardance
|
Ks
|
2
|
37.14
|
325
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T22:34:46Z", "hours": 15.0, "multiplier": 12.18, "payout": 177, "blessing": "neutral", "text": "This website is still a work in progress, but am shipping right now for Playground [I don’t know how to add it to the mission though] (Note: Find Lavender though Games -> Lavender’s Home -> Lavender) I hated doing the phone version, couldn’t get patting for the phone in any single way, but it works well on PC, (hover the mouse and move it a bit) In this update you also have the main Math page, still working on the smaller pages, might have to bring up Manim or something soon for them, and added a calculator!", "repo": "https://github.com/Ks-Marbs/ks-corner", "demo": "https://ks-marbs.github.io/ks-corner/"}, {"ship_num": 2, "ts": "2026-06-29T19:55:54Z", "hours": 20.0, "multiplier": 7.33, "payout": 148, "blessing": "neutral", "text": "My first website attempt Honestly too lazy to learn HTML so made it in Godot ’o-o Any and all feedback is appreciated", "repo": "https://github.com/Ks-Marbs/ks-corner", "demo": "https://ks-marbs.github.io/ks-corner/"}]...
|
[{"post_id": 81479, "ts": "202 [{"post_id": 81479, "ts": "2026-10-21T12:45:22Z", "hours": 2.1442, "text": "Added small pages for all three of my [old] series Tweaked Lavender a bit too"}, {"post_id": 79180, "ts": "2026-10-12T22:28:17Z", "hours": 2.5675, "text": "Finished adding Lavender, And her game page! Will ship for now so it qualifyies for Playground but ill still finish the other pages 🪻"}, {"post_id": 77385, "ts": "2026-10-06T19:00:40Z", "hours": 2.8272, "text": "Added the Lavender’s home page, and just added… Lavender?"}, {"post_id": 76020, "ts": "2026-10-02T02:34:12Z", "hours": 2.265, "text": "Made pages for room sokoban and Unn Rhyhtm game, as well as bugfixed the calculator on phone, as it was coming too small for the screen"}, {"post_id": 73376, "ts": "2026-09-25T01:17:36Z", "hours": 2.6642, "text": "Oh hey, we actually did a calculator… [sort of, its just a fancy keyboard and parcing in godot but i’m too lazy to make a full calculator] No idea what to do next except writing… ‘– It’s so boooooorinng"}, {"post_id": 70148, "ts": "2026-09-18T15:41:53Z", "hours": 2.2397, "text": "Added the Math page! Planning on adding a calculator “page” later, and maybe adding more articles written by myself when i have time ;-;"}, {"post_id": 65673, "ts": "2026-09-10T23:44:19Z", "hours": 2.0031, "text": "Updated godot from 4.5 to 4.7 It broke the image sizing so i fixed it ( ’–)"}, {"post_id": 18596, "ts": "2026-06-29T19:41:44Z", "hours": 4.6339, "text": "Finished the website (mostly) I think its nice enough to ship :] Should update with photos and irl prizes when i’m more comfortable sharing my irl name but except that, it works Added a very nice BG and pictures and audios"}, {"post_id": 13493, "ts": "2026-06-22T02:49:40Z", "hours": 4.1911, "text": "Week 15 to 21 worked mostly on getting the site phone ready. also began developing some features/Easter eggs. I’m develoging through phone and it does not have the enter key to type \\n"}, {"post_id": 9607, "ts": "2026-06-16T00:23:39Z", "hours": 5.5392, "text": "Week: 8->14/6 I’m not home so I hope this goes in time for the weekly stickers T-T This week I worked mostly on phone adaptation, also looked how to make each of the pages actual pages, and made the start screen text! Also discovered that images can go directly on text so will use that to my advantage :]"}, {"post_id": 4360, "ts": "2026-06-07T17:32:43Z", "hours": 0.7628, "text": "Images are now working! plans for the future is making the site diferent for phone i.e. vertical"}, {"post_id": 3881, "ts": "2026-06-06T23:37:48Z", "hours": 0.6258, "text": "Am I wrong for doing exactly 30 minutes everyday just so I can get all da stickers? But yeah, somehow typing all this and making it work for more than 1 mini page took 35 minutes"}, {"post_id": 3220, "ts": "2026-06-06T01:33:03Z", "hours": 3.0619, "text": "So in these last few days: Updated the site to make it scalable Made it so text exists Figuring out how to add images that move with the text (Hackatime changed the name of the project so I didn’t devlog since I didn’t see it did, please don’t remove my stickers)"}, {"post_id": 1014, "ts": "2026-06-02T20:06:21Z", "hours": 0.8453, "text": "Began building the website in Godot, and am creating the github repo (before i forget) Figured out how to make the mouse do the thingy where it turns into a “you can click here” thingy (unable to screenshot that but most of y’all know it) Began searching for how to turn scenes into pages in Godot -> HTML"}, {"post_id": 496, "ts": "2026-06-01T23:38:07Z", "hours": 0.5667, "text": "Heyyyy🟡 idk why but i can only type the title? Anyway, began doing a sketch at canva for reference"}]...
|
Title: Ks' Corner by @Ks | Stardance
Devlogs: Title: Ks' Corner by @Ks | Stardance
Devlogs:
Heyyyy🟡 idk why but i can only type the title? Anyway, began doing a sketch at canva for reference
Began building the website in Godot, and am creating the github repo (before i forget) Figured out how to make the mouse do the thingy where it turns into a “you can click here” thingy (unable to screenshot that but most of y’all know it) Began searching for how to turn scenes into pages in Godot -> HTML
So in these last few days: Updated the site to make it scalable Made it so text exists Figuring out how to add images that move with the text (Hackatime changed the name of the project so I didn’t devlog since I didn’t see it did, please don’t remove my stickers)
Am I wrong for doing exactly 30 minutes everyday just so I can get all da stickers? But yeah, somehow typing all this and making it work for more than 1 mini page took 35 minutes
Images are now working! plans for the future is making the site diferent for phone i.e. vertical
Week: 8->14/6 I’m not home so I hope this goes in time for the weekly stickers T-T This week I worked mostly on phone adaptation, also looked how to make each of the pages actual pages, and made the start screen text! Also discovered that images can go directly on text so will use that to my advantage :]
Week 15 to 21 worked mostly on getting the site phone ready. also began developing some features/Easter eggs. I’m develoging through phone and it does not have the enter key to type \n
Finished the website (mostly) I think its nice enough to ship :] Should update with photos and irl prizes when i’m more comfortable sharing my irl name but except that, it works Added a very nice BG and pictures and audios
Updated godot from 4.5 to 4.7 It broke the image sizing so i fixed it ( ’–)
Added the Math page! Planning on adding a calculator “page” later, and maybe adding more articles written by myself when i have time ;-;
Oh hey, we actually did a calculator… [sort of, its just a fancy keyboard and parcing in godot but i’m too lazy to make a full calculator] No idea what to do next except writing… ‘– It’s so boooooorinng
Made pages for room sokoban and Unn Rhyhtm game, as well as bugfixed the calculator on phone, as it was coming too small for the screen
Added the Lavender’s home page, and just added… Lavender?
Finished adding Lavender, And her game page! Will ship for now so it qualifyies for Playground but ill still finish the other pages 🪻
Added small pages for all three of my [old] series Tweaked Lavender a bit too
Ships:
My first website attempt Honestly too lazy to learn HTML so made it in Godot ’o-o Any and all feedback is appreciated
This website is still a work in progress, but am shipping right now for Playground [I don’t know how to add it to the mission though] (Note: Find Lavender though Games -> Lavender’s Home -> Lavender) I hated doing the phone version, couldn’t get patting for the phone in any single way, but it works well on PC, (hover the mouse and move it a bit) In this update you also have the main Math page, still working on the smaller pages, might have to bring up Manim or something soon for them, and added a calculator!...
|
1792986713.0917718
|
1793073113.0917718
|
|
279
|
My first slack bot! by @Will | Stardance
|
Will
|
0
|
0.44
|
0
|
[]
|
[{"post_id": 8776, "ts": "2026 [{"post_id": 8776, "ts": "2026-06-14T16:14:23Z", "hours": 0.4419, "text": "Start working"}]...
|
Title: My first slack bot! by @Will | Stardance
D Title: My first slack bot! by @Will | Stardance
Devlogs:
Start working...
|
1792594508.6439064
|
1793199308.6439064
|
|
278
|
six seven by @qcoral | Stardance
|
qcoral
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: six seven by @qcoral | Stardance
|
1792691341.2436485
|
1793296141.2436485
|
|
277
|
Kadent by @hacha-mouse | Stardance
|
hacha-mouse
|
1
|
231.72
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-01T15:24:36Z", "hours": 229.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Kadent Kadent is a cross-platform DAW featuring KASL, a domain-specific audio language, and node-graph processing system. Features Create music with familiar track-based UI Two track types: Note Track & Audio Track Node graph for every track KASL language with syntax similar to Swift The node graph allows you to combine multiple KASL programs to perform much more complex processing. What Is a Node Graph? Kadent uses node graph for track processing. A Node is a processing unit that calculates the output. In node graph, an output of one node can be connected to an input of another node. This allows you to connect multiple inputs and outputs freely to other nodes to create sound. Then, why did I adopt node graph? KASL programs can have multiple inputs and outputs, and their types may also vary. So placing them in order does not work because the DAW cannot know which output is connected to the specific input. That’s why Kadent uses node graph. Characteristics of KASL Utilizes Cranelift as a backend for quicker JIT compilation Specialized type of variables such as input , output and state Supports fixed-length arrays and structs Fixed-count loop syntax for predictable execution time Module system influenced by Python Custom infix/prefix/postfix operators (even normal arithmetic operators are defined and provided by std ) KASL Sample Program audio module is built-in module provided by Kadent. Note that these programs below won’t work outside the DAW. Gain Node import audio import std input in = audio.zero_sample() input gain = 0.0 output out = audio.zero_sample() func main() { out = in * [gain; audio.max_channels] } Mix Node import std import std/math/float as f import audio input input_1 = audio.zero_sample() input input_2 = audio.zero_sample() input factor = 0.0 output out = audio.zero_sample() func main() { let clamped_factor = f.clamp(factor, 0.0, 1.0) let multiplied_input_1: audio.Sample = input_1 * [clamped_factor; audio.max_channels] let multiplied_input_2: audio.Sample = input_2 * [1.0 - clamped_factor; audio.max_channels] out = multiplied_input_1 + multiplied_input_2 } Sawtooth Wave Synthesizer import audio as a import std import std/math/float as f input notes = a.EventSlot() input pitch = 1.0 output out = a.zero_sample() state allocator = a.Allocator() let base_freq = 440.0 let volume = 0.1 func main() { allocator.update(notes) var i = 0 loop a.max_voices { let voice = allocator.voices[i] let freq = pitch * base_freq * f.pow(2.0, (voice.pitch - 69.0) / 12.0) if voice.is_active { let t = voice.age let sample = saw(freq: freq, time: t) out = out + [sample * volume; a.max_channels] } i = i + 1 } } func saw(freq f = 440.0, time t: Float) -> Float { return 2.0 * (t * f) % 1.0 - 1.0 } Installation Go to the Releases page of my GitHub repository to download the latest precompiled binary, or compile the binary yourself. Detailed installation steps are described in README .", "repo": "https://github.com/hatya-mouse/kadent", "demo": "https://github.com/hatya-mouse/kadent/releases/tag/v0.1.1"}]...
|
[{"post_id": 81784, "ts": "202 [{"post_id": 81784, "ts": "2026-10-22T14:10:13Z", "hours": 0.8664, "text": "How to add Note Region You can add note region by double-clicking in the timeline. To add notes to it, you need to select the region by clicking it first. Code Editor Error .kdp files are serialized project files, not a source code. You can create a new source file by clicking the src/ directory in the Code Editor. To add a source code to the note track, first open a node graph and add a KASL node to it. In the Inspector, you can specify the path to the source code (e.g. src/example.kasl). Added Some More Documentation I’ve added documentation with screenshots of each panels: Timeline Inspector Automation Node Graph Piano Roll Code Editor"}, {"post_id": 81773, "ts": "2026-10-22T13:18:48Z", "hours": 1.8489, "text": "Added Documentation I saw that the reviewer tried to open the binary project file in the code editor and failed so I’ve decided to add a some sort of tutorial or a documentation. I really wanted to add an interactive tutorial so that the reviewers and the users can know how Kadent works, but I didn’t have time to do so so I’ve just added a few documentation."}, {"post_id": 59408, "ts": "2026-09-01T06:49:17Z", "hours": 17.1803, "text": "Added License Browser It’s been a while since my last devlog! During this time I’ve added an Acknowledgements view where you can look at license text and other informations of the Fonts and Crates that I’ve used. It was a bit difficult to implement because there are so many crates, but I’m satisfied with the result."}, {"post_id": 56435, "ts": "2026-08-28T06:22:03Z", "hours": 41.4536, "text": "Improved code editor I’ve implemented error highlighting in the code editor. I also added a list of errors at the bottom of the code editor, and I can jump to the position of the error by clicking the error. TextEdit in egui does not support highlighting character by character and instead it only highlighting by each sections, so red underlined part may be bigger than the actual error range, but I guess it still looks nice."}, {"post_id": 52794, "ts": "2026-08-23T04:24:09Z", "hours": 10.9353, "text": "sode I’ve created a simple binary serialization crate called “sode” for Kadent. This guarantees that the output binary won’t change even if the struct is modified so I thought it would be better than serde or that sort of serialization library. impl Encode for Note { fn encode ( & self , e : & mut Encoder ) -> Result < (), EncodeError > { e .field ( 0 , & self .start ) ? ; e .field ( 1 , & self .duration ) ? ; e .field ( 2 , & self .pitch ) ? ; e .field ( 3 , & self .velocity ) ? ; Ok (()) } } impl Decode for Note { fn decode ( d : & mut ValueDecoder ) -> Result < Self , DecodeError > { let d = d .to_field_decoder () ? ; Ok ( Note :: new ( d .field ( 0 ) ? .ok_or ( DecodeError :: InvalidData ) ? , d .field ( 1 ) ? .ok_or ( DecodeError :: InvalidData ) ? , d .field ( 2 ) ? .ok_or ( DecodeError :: InvalidData ) ? , d .field ( 3 ) ? .ok_or ( DecodeError :: InvalidData ) ? , )) } }"}, {"post_id": 51188, "ts": "2026-08-20T18:06:44Z", "hours": 4.3567, "text": "Curve type selection I’ve implemented a selection dropdown for three curve types: linear, step, and smooth. Next thing to do is to add a text field to adjust the curve tension"}, {"post_id": 50847, "ts": "2026-08-20T09:11:52Z", "hours": 8.7028, "text": "Automation Automation is here. I’ve implemented an automation node, which is associated with an automation track that you can add keyframes to value that changes over time. You can even connect automation nodes to KASL Node to use the value for calculation!"}, {"post_id": 49569, "ts": "2026-08-18T13:30:07Z", "hours": 4.8889, "text": "Refactored codebase It looks exactly the same as the previous devlog, but I refactored the codebase, primarily the EditorUiState. I separated many members of EditorUiState to multiple small structs for better readability"}, {"post_id": 48851, "ts": "2026-08-17T12:25:43Z", "hours": 7.1642, "text": "Added ruler to piano roll I’ve added the ruler to the piano roll. This will make note placement easier and more intuitive than before. Also I refactored the codebase a little bit, but honestly I thought the previous implementation would be better so I may be putting it back soon."}, {"post_id": 47876, "ts": "2026-08-16T04:17:12Z", "hours": 11.8714, "text": "Add seconds support for region placement I’ve added TimePosition and TimeBounds to store the position of the region. They have two modes: one stores the position in Ticks, and another one stores it in seconds. Ticks and seconds can be calculated from each other using TempoMap."}, {"post_id": 46767, "ts": "2026-08-14T08:06:59Z", "hours": 11.5078, "text": "On-demamd resampling for audio tracks Audio regions require resampling because the sample rate of the source data may differ from the required sample rate. So far, the audio engine for Kadent has been resampling the entire audio data before playback or exporting. However, resampling audio data in advance takes a lot of CPU and increases the time it takes to prepare for playback. This time I made it resample the audio data on demand during playback. This makes audio thread not to store the massive resampled audio data. *sample rate: a value that indicates how many samples are in a single second *sample: a value that represents the sound wave’s loudness at a specific moment in time"}, {"post_id": 45991, "ts": "2026-08-12T20:39:49Z", "hours": 49.1206, "text": "Waveform Rendering & Scroll Bar This time, I’ve mainly implemented two features: waveform rendering and timeline scroll bar. Waveform I’ve added a waveform rendering logic to the timeline. I handled it by generating peak value data to render it quicker than calculating the peak value while rendering. After all, it looks pretty nice and scales perfectly when zooming with my trackpad. Timeline Scroll Bar Another feature I’ve added is a timeline scroll bar. It may not look appealing, but its calculation was quite hard actually. I had to calculate the ratio of the visible area and the entire timeline to get the width of the scroll bar. I think it is lot better than egui’s builtin scroll bar, so I’m quite satisfied with the outcome!"}, {"post_id": 20035, "ts": "2026-07-01T15:15:14Z", "hours": 1.9881, "text": "Ability to adjust project range I’ve implemented a feature that the user can adjust the project’s export range just by dragging the handle in the ruler. Also the actual number is shown in the status bar while the handle is being dragged so the user can know the exact beat where is going to be exported."}, {"post_id": 19709, "ts": "2026-07-01T03:15:36Z", "hours": 23.7522, "text": "Refactored the audio engine I’ve streamlined the note processing logic in the audio engine. So far, the audio engine handled sequenced notes (notes that you can see in the editor) and the realtime MIDI notes that you can play using some MIDI controllers differently. It also lacked maintainability. That’s why I’ve completely rebuilt the logic to unify the process. It also contributed to reduce the amount of code, and I’m happy with that."}, {"post_id": 16801, "ts": "2026-06-27T08:53:19Z", "hours": 3.0306, "text": "Added Status Bar I’ve added a new status bar, which shows some informations such as sample rate, buffer size and the selected content, at the bottom of the window. Fixed Node Graph Rendering Bug The node graph used to be rendered on the front of the header, but I finally fixed this by using Panel to limit the area where painter can draw the graph."}, {"post_id": 15135, "ts": "2026-06-24T16:22:43Z", "hours": 7.1325, "text": "Improved menu design I’ve improved the design of the menu by adjusting the button style. It took quite a long time because of egui’s a little bit confusing styling API. Refactor and optimize the audio engine I’ve refactored the audio engine by using integer ticks to manage time instead of f32 beats. By using integer ticks, it can be calculated even faster and more accurately."}, {"post_id": 12564, "ts": "2026-06-20T14:55:28Z", "hours": 1.1906, "text": "Nested dropdown menu for device selection I’ve improved a device selection feature by nesting the menu. Thanks to this, users can click a single headphones button to change the MIDI ports and output devices. Also I added some icons for these."}, {"post_id": 12510, "ts": "2026-06-20T13:06:52Z", "hours": 1.2117, "text": "Selectable audio output I’ve added a feature to select audio output! It may seem simple but it actually needed refactoring the audio engine and it took a lot of time."}, {"post_id": 12455, "ts": "2026-06-20T10:23:24Z", "hours": 2.4333, "text": "Replacing audio stream when switching devices I’ve implemented a logic in the audio engine, that allows the Kadent DAW to switch the output device. It was challenging because Mixer and MPSC consumers cannot be cloned. Finally I used Arc and Mutex in order to share the context with multiple threads. let callback_ctx = Arc::new(Mutex::new(OutputCallbackContext { mixer, command_cons, midi_cons, vu_prod, pending_project: pending_arc, })); I used try_lock instead of normal lock , which may block the thread, as you can see in the screenshot."}, {"post_id": 9312, "ts": "2026-06-15T16:59:09Z", "hours": 5.6553, "text": "KASL module system improvement So far, KASL compiler didn’t allow us to import external programs with the same name, because the name of the namespace conflicts. Today I have added new alias feature, which can be used like this: import foo as bar With this syntax, you can import a program named foo.kasl and refer to it with bar . This can also improve readability when importing a file with a long name! Streamline compilation I wanted to try compiling Kadent to application that can be installed using an installer, instead of a simple executable binary. I found Taskfile, which is a build tool similar to make but uses a yaml file to define workflows. I found it very useful so I adopted it and it worked very well! Currently I only have workflow for macOS compilation but I want to add Windows and Linux support soon!"}, {"post_id": 8724, "ts": "2026-06-14T14:21:32Z", "hours": 2.6775, "text": "Project creation dialog I’ve implemented new project creation dialog. You can specify the name of the project and select the folder using a picker from the system."}, {"post_id": 8532, "ts": "2026-06-14T06:06:41Z", "hours": 2.6142, "text": "Implemented splash screen I’ve finally finished implementing the splash screen for Kadent. On the left side, there are two buttons for creating or opening a project. The right panel shows the recent projects. Challenge The biggest challenge in implementing the splash screen was to layout UI components. It was quite hard to center the logo and the buttons. I spent around 1hrs dealing with that problem. Here’s how I solved it: const BUTTON_WIDTH : f32 = 300.0 ; const BUTTON_HEIGHT : f32 = 42.0 ; const CONTENT_HEIGHT : f32 = 60.0 + 12.0 + 16.0 + 24.0 + 12.0 + BUTTON_HEIGHT * 2.0 ; impl SplashUi { pub ( super ) fn splash_controls ( & mut self , ui : & mut egui :: Ui ) -> Option < EditorTransition > { ui .vertical_centered (| ui | { // Add space to vertically center the UI parts ui .add_space ( full_height / 2.0 - CONTENT_HEIGHT / 2.0 ); // UI Components }) .inner } } Since centering both horizontally and vertically while calculating the height of the inner content is painful, I eventually hardcoded the height of the UI components in order to center the UI vertically. Logo I’ve also designed a logo for Kadent in the meantime. I tweaked the font called “Inter”, which is available on Google Fonts, for the logo."}, {"post_id": 8172, "ts": "2026-06-13T16:50:03Z", "hours": 7.3775, "text": "Kadent — A DAW with custom language to create synths and effects Refactored project strucure As my codebase became bigger, it started to be a bit complicated, so I’ve refactored the codebase. New folder structure is consist of four directories in src/ directory: commands , core , storage , and ui . commands directory contains the audio engine communication logic. It has some functions like add_note that adds a new note to the specified track and sends the updated project to the audio thread. core directory contains KASLNode implementation and some metadata. KASLNode is a specific node that can literally execute KASL programs. Metadata is a data that are not necessarily tied to audio engine. It includes track colors, track names, region names, etc. storage directory contains some implementation for storing and loading files. It has a logic to save and load the Kadent project file. ui directory contains the UI implementation. Inside the ui directory, there are components , theme , and workspaces directories. components directory has some common UI parts used in various parts of the DAW. theme defines colors and size used in the UI. workspaces contains the UI implementation for the editor and the splash screen. Splash screen I’m currently implementing a splash screen for Kadent. It used to have just two buttons to create or open a project. I’ve just finished implementing “Recent Projects” list. (shown on the right side)"}, {"post_id": 4027, "ts": "2026-06-07T06:23:01Z", "hours": 1.4083, "text": "Implemented multithread track processing for the audio engine using Rayon ! I used to think implementing multithreading would be a nightmare, but I utilized Rayon which was actually very intuitive and easy to use. The screenshot shows the exact code where the tracks are being processed in parallel."}, {"post_id": 30, "ts": "2026-05-31T09:44:30Z", "hours": 1.7811, "text": "I am working on a WASM backend for my KASL language!"}]...
|
Title: Kadent by @hacha-mouse | Stardance
Devlogs Title: Kadent by @hacha-mouse | Stardance
Devlogs:
I am working on a WASM backend for my KASL language!
Implemented multithread track processing for the audio engine using Rayon ! I used to think implementing multithreading would be a nightmare, but I utilized Rayon which was actually very intuitive and easy to use. The screenshot shows the exact code where the tracks are being processed in parallel.
Kadent — A DAW with custom language to create synths and effects Refactored project strucure As my codebase became bigger, it started to be a bit complicated, so I’ve refactored the codebase. New folder structure is consist of four directories in src/ directory: commands , core , storage , and ui . commands directory contains the audio engine communication logic. It has some functions like add_note that adds a new note to the specified track and sends the updated project to the audio thread. core directory contains KASLNode implementation and some metadata. KASLNode is a specific node that can literally execute KASL programs. Metadata is a data that are not necessarily tied to audio engine. It includes track colors, track names, region names, etc. storage directory contains some implementation for storing and loading files. It has a logic to save and load the Kadent project file. ui directory contains the UI implementation. Inside the ui directory, there are components , theme , and workspaces directories. components directory has some common UI parts used in various parts of the DAW. theme defines colors and size used in the UI. workspaces contains the UI implementation for the editor and the splash screen. Splash screen I’m currently implementing a splash screen for Kadent. It used to have just two buttons to create or open a project. I’ve just finished implementing “Recent Projects” list. (shown on the right side)
Implemented splash screen I’ve finally finished implementing the splash screen for Kadent. On the left side, there are two buttons for creating or opening a project. The right panel shows the recent projects. Challenge The biggest challenge in implementing the splash screen was to layout UI components. It was quite hard to center the logo and the buttons. I spent around 1hrs dealing with that problem. Here’s how I solved it: const BUTTON_WIDTH : f32 = 300.0 ; const BUTTON_HEIGHT : f32 = 42.0 ; const CONTENT_HEIGHT : f32 = 60.0 + 12.0 + 16.0 + 24.0 + 12.0 + BUTTON_HEIGHT * 2.0 ; impl SplashUi { pub ( super ) fn splash_controls ( & mut self , ui : & mut egui :: Ui ) -> Option < EditorTransition > { ui .vertical_centered (| ui | { // Add space to vertically center the UI parts ui .add_space ( full_height / 2.0 - CONTENT_HEIGHT / 2.0 ); // UI Components }) .inner } } Since centering both horizontally and vertically while calculating the height of the inner content is painful, I eventually hardcoded the height of the UI components in order to center the UI vertically. Logo I’ve also designed a logo for Kadent in the meantime. I tweaked the font called “Inter”, which is available on Google Fonts, for the logo.
Project creation dialog I’ve implemented new project creation dialog. You can specify the name of the project and select the folder using a picker from the system.
KASL module system improvement So far, KASL compiler didn’t allow us to import external programs with the same name, because the name of the namespace conflicts. Today I have added new alias feature, which can be used like this: import foo as bar With this syntax, you can import a program named foo.kasl and refer to it with bar . This can also improve readability when importing a file with a long name! Streamline compilation I wanted to try compiling Kadent to application that can be installed using an installer, instead of a simple executable binary. I found Taskfile, which is a build tool similar to make but uses a yaml file to define workflows. I found it very useful so I adopted it and it worked very well! Currently I only have workflow for macOS compilation but I want to add Windows and Linux support soon!
Replacing audio stream when switching devices I’ve implemented a logic in the audio engine, that allows the Kadent DAW to switch the output device. It was challenging because Mixer and MPSC consumers cannot be cloned. Finally I used Arc and Mutex in order to share the context with multiple threads. let callback_ctx = Arc::new(Mutex::new(OutputCallbackContext { mixer, command_cons, midi_cons, vu_prod, pending_project: pending_arc, })); I used try_lock instead of normal lock , which may block the thread, as you can see in the screenshot.
Selectable audio output I’ve added a feature to select audio output! It may seem simple but it actually needed refactoring the audio engine and it took a lot of time.
Nested dropdown menu for device selection I’ve improved a device selection feature by nesting the menu. Thanks to this, users can click a single headphones button to change the MIDI ports and output devices. Also I added some icons for these.
Improved menu design I’ve improved the design of the menu by adjusting the button style. It took quite a long time because of egui’s a little bit confusing styling API. Refactor and optimize the audio engine I’ve refactored the audio engine by using integer ticks to manage time instead of f32 beats. By using integer ticks, it can be calculated even faster and more accurately.
Added Status Bar I’ve added a new status bar, which shows some informations such as sample rate, buffer size and the selected content, at the bottom of the window. Fixed Node Graph Rendering Bug The node graph used to be rendered on the front of the header, but I finally fixed this by using Panel to limit the area where painter can draw the graph.
Refactored the audio engine I’ve streamlined the note processing logic in the audio engine. So far, the audio engine handled sequenced notes (notes that you can see in the editor) and the realtime MIDI notes that you can play using some MIDI controllers differently. It also lacked maintainability. That’s why I’ve completely rebuilt the logic to unify the process. It also contributed to reduce the amount of code, and I’m happy with that.
Ability to adjust project range I’ve implemented a feature that the user can adjust the project’s export range just by dragging the handle in the ruler. Also the actual number is shown in the status bar while the handle is being dragged so the user can know the exact beat where is going to be exported.
Waveform Rendering & Scroll Bar This time, I’ve mainly implemented two features: waveform rendering and timeline scroll bar. Waveform I’ve added a waveform rendering logic to the timeline. I handled it by generating peak value data to render it quicker than calculating the peak value while rendering. After all, it looks pretty nice and scales perfectly when zooming with my trackpad. Timeline Scroll Bar Another feature I’ve added is a timeline scroll bar. It may not look appealing, but its calculation was quite hard actually. I had to calculate the ratio of the visible area and the entire timeline to get the width of the scroll bar. I think it is lot better than egui’s builtin scroll bar, so I’m quite satisfied with the outcome!
On-demamd resampling for audio tracks Audio regions require resampling because the sample rate of the source data may differ from the required sample rate. So far, the audio engine for Kadent has been resampling the entire audio data before playback or exporting. However, resampling audio data in advance takes a lot of CPU and increases the time it takes to prepare for playback. This time I made it resample the audio data on demand during playback. This makes audio thread not to store the massive resampled audio data. *sample rate: a value that indicates how many samples are in a single second *sample: a value that represents the sound wave’s loudness at a specific moment in time
Add seconds support for region placement I’ve added TimePosition and TimeBounds to store the position of the region. They have two modes: one stores the position in Ticks, and another one stores it in seconds. Ticks and seconds can be calculated from each other using TempoMap.
Added ruler to piano roll I’ve added the ruler to the piano roll. This will make note placement easier and more intuitive than before. Also I refactored the codebase a little bit, but honestly I thought the previous implementation would be better so I may be putting it back soon.
Refactored codebase It looks exactly the same as the previous devlog, but I refactored the codebase, primarily the EditorUiState. I separated many members of EditorUiState to multiple small structs for better readability
Automation Automation is here. I’ve implemented an automation node, which is associated with an automation track that you can add keyframes to value that changes over time. You can even connect automation nodes to KASL Node to use the value for calculation!
Curve type selection I’ve implemented a selection dropdown for three curve types: linear, step, and smooth. Next thing to do is to add a text field to adjust the curve tension
sode I’ve created a simple binary serialization crate called “sode” for Kadent. This guarantees that the output binary won’t change even if the struct is modified so I thought it would be better than serde or that sort of serialization library. impl Encode for Note { fn encode ( & self , e : & mut Encoder ) -> Result < (), EncodeError > { e .field ( 0 , & self .start ) ? ; e .field ( 1 , & self .duration ) ? ; e .field ( 2 , & self .pitch ) ? ; e .field ( 3 , & self .velocity ) ? ; Ok (()) } } impl Decode for Note { fn decode ( d : & mut ValueDecoder ) -> Result < Self , DecodeError > { let d = d .to_field_decoder () ? ; Ok ( Note :: new ( d .field ( 0 ) ? .ok_or ( DecodeError :: InvalidData ) ? , d .field ( 1 ) ? .ok_or ( DecodeError :: InvalidData ) ? , d .field ( 2 ) ? .ok_or ( DecodeError :: InvalidData ) ? , d .field ( 3 ) ? .ok_or ( DecodeError :: InvalidData ) ? , )) } }
Improved code editor I’ve implemented error highlighting in the code editor. I also added a list of errors at the bottom of the code editor, and I can jump to the position of the error by clicking the error. TextEdit in egui does not support highlighting character by character and instead it only highlighting by each sections, so red underlined part may be bigger than the actual error range, but I guess it still looks nice.
Added License Browser It’s been a while since my last devlog! During this time I’ve added an Acknowledgements view where you can look at license text and other informations of the Fonts and Crates that I’ve used. It was a bit difficult to implement because there are so many crates, but I’m satisfied with the result.
Added Documentation I saw that the reviewer tried to open the binary project file in the code editor and failed so I’ve decided to add a some sort of tutorial or a documentation. I really wanted to add an interactive tutorial so that the reviewers and the users can know how Kadent works, but I didn’t have time to do so so I’ve just added a few documentation.
How to add Note Region You can add note region by double-clicking in the timeline. To add notes to it, you need to select the region by clicking it first. Code Editor Error .kdp files are serialized project files, not a source code. You can create a new source file by clicking the src/ directory in the Code Editor. To add a source code to the note track, first open a node graph and add a KASL node to it. In the Inspector, you can specify the path to the source code (e.g. src/example.kasl). Added Some More Documentation I’ve added documentation with screenshots of each panels: Timeline Inspector Automation Node Graph Piano Roll Code Editor
Ships:
Kadent Kadent is a cross-platform DAW featuring KASL, a domain-specific audio language, and node-graph processing system. Features Create music with familiar track-based UI Two track types: Note Track & Audio Track Node graph for every track KASL language with syntax similar to Swift The node graph allows you to combine multiple KASL programs to perform much more complex processing. What Is a Node Graph? Kadent uses node graph for track processing. A Node is a processing unit that calculates the output. In node graph, an output of one node can be connected to an input of another node. This allows you to connect multiple inputs and outputs freely to other nodes to create sound. Then, why did I adopt node graph? KASL programs can have multiple inputs and outputs, and their types may also vary. So placing them in order does not work because the DAW cannot know which output is connected to the specific input. That’s why Kadent uses node graph. Characteristics of KASL Utilizes Cranelift as a backend for quicker JIT compilation Specialized type of variables such as input , output and state Supports fixed-length arrays and structs Fixed-count loop syntax for predictable execution time Module system influenced by Python Custom infix/prefix/postfix operators (even normal arithmetic operators are defined and provided by std ) KASL Sample Program audio module is built-in module provided by Kadent. Note that these programs below won’t work outside the DAW. Gain Node import audio import std input in = audio.zero_sample() input gain = 0.0 output out = audio.zero_sample() func main() { out = in * [gain; audio.max_channels] } Mix Node import std import std/math/float as f import audio input input_1 = audio.zero_sample() input input_2 = audio.zero_sample() input factor = 0.0 output out = audio.zero_sample() func main() { let clamped_factor = f.clamp(factor, 0.0, 1.0) let multiplied_input_1: audio.Sample = input_1 * [clamped_factor; audio.max_channels] let multiplied_input_2: audio.Sample = input_2 * [1.0 - clamped_factor; audio.max_channels] out = multiplied_input_1 + multiplied_input_2 } Sawtooth Wave Synthesizer import audio as a import std import std/math/float as f input notes = a.EventSlot() input pitch = 1.0 output out = a.zero_sample() state allocator = a.Allocator() let base_freq = 440.0 let volume = 0.1 func main() { allocator.update(notes) var i = 0 loop a.max_voices { let voice = allocator.voices[i] let freq = pitch * base_freq * f.pow(2.0, (voice.pitch - 69.0) / 12.0) if voice.is_active { let t = voice.age let sample = saw(freq: freq, time: t) out = out + [sample * volume; a.max_channels] } i = i + 1 } } func saw(freq f = 440.0, time t: Float) -> Float { return 2.0 * (t * f) % 1.0 - 1.0 } Installation Go to the Releases page of my GitHub repository to download the latest precompiled binary, or compile the binary yourself. Detailed installation steps are described in README ....
|
1792972250.2222643
|
1793058650.2222643
|
|
276
|
Tempo by @xarber | Stardance
|
xarber
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Tempo by @xarber | Stardance
|
1792518904.6851594
|
1793123704.6851594
|
|
275
|
Fetch by @xarber | Stardance
|
xarber
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Fetch by @xarber | Stardance
|
1792637567.6617815
|
1793242367.6617815
|
|
274
|
Echo by @xarber | Stardance
|
xarber
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Echo by @xarber | Stardance
|
1792605009.5089886
|
1793209809.5089886
|
|
273
|
Unmasked by @xarber | Stardance
|
xarber
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Unmasked by @xarber | Stardance
|
1792684106.8443542
|
1793288906.8443542
|
|
272
|
Untitled by @ishowspeed | Stardance
|
ishowspeed
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @ishowspeed | Stardance
|
1792936275.519974
|
1793800275.519974
|
|
271
|
Pathway by @xarber | Stardance
|
xarber
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Pathway by @xarber | Stardance
|
1792716706.067727
|
1793321506.067727
|
|
270
|
BetterStandby by @Capy | Stardance
|
Capy
|
1
|
16.0
|
235
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-14T15:33:29Z", "hours": 16.0, "multiplier": 14.33, "payout": 235, "blessing": "neutral", "text": "I made BetterStandby! It’s a PWA that lets non-iPhones and any phones without an always-on display use a clock face inspired by Apple’s StandBy! It’s highly customisable, featuring custom font size, font, and accent colour, alongside different layouts. It was really fun to build, so thanks for reading! Hope you like it as much as I do :D", "repo": "https://github.com/CapyGamesXD/BetterStandby", "demo": "https://betterstandby.capydesigns.com"}]...
|
[{"post_id": 8747, "ts": "2026 [{"post_id": 8747, "ts": "2026-06-14T15:30:47Z", "hours": 1.2781, "text": "Final Devlog! I (once again) redesigned the settings page, and I’m super happy with the outcome. I also adapted several other pages and made some smaller improvements. I made a README file showcasing some images of the project. I think this will be the last devlog before I ship, so see you guys in the next project, and thanks for reading!"}, {"post_id": 8272, "ts": "2026-06-13T19:20:33Z", "hours": 4.3236, "text": "WOW! Lot of work done! I’ll go through them quickly: 1: Capybara 404 page 2: Added GPS geolocation (no more IP :D) 3: Added a fancy new icon! (3 lines of AI code for the meta tags!!!) Speedrun time! Fixed small-screen layout issues, added a ‘hide location’ button in settings, totally revamped settings and customisation, fixed an inconsistency across the starting page and the customisation page, removed a useless button, added a ‘docs’ page talking about the project, spent a while debugging a ‘rogue import’ issue (XD), put default at the top for fonts, improved saving logic and ADDED 5 NEW FONTS! :D They all look great! Everybody welcome: Pliant, Montserrat, Oswald, Roboto Slab, and Pixelify Sans! This gives you up to 49 new combinations! :D Sorry for the long devlog and any mistakes, thanks for reading!"}, {"post_id": 4427, "ts": "2026-06-07T19:04:28Z", "hours": 2.8225, "text": "BIG devlog! A bunch of really nice features! In reverse order of my preference: Fixed bugs on Safari Some nice outlines for visibility if the user decides on light accent colours. I added a font sizing option in customisation! Added font customisation for both large and small text. Also updated the font styling to work across various screen sizes! And finally… FINALLY! I added ANIMATIONS! They’re really fluid and smooth. Plans: Improve reliability across browsers. Add a font sizing option to smaller text. I’m considering adding PWA detection, but not sure. Also considering some fun documentation for the user/tester to read regarding screen burn protection and the idea of the app. Add more pages! Improve UI. Thanks for reading! (Sorry for any grammar/spelling issues, I type all my devlogs manually lel)"}, {"post_id": 2835, "ts": "2026-06-05T17:52:25Z", "hours": 2.0106, "text": "2h devlog. So I fixed the bugs mentioned at the end of the last devlog, which is great :D I also redesigned the concept of the settings, now there are separate pages for customisation and actual settings. I also implemented that new settings menu, featuring control over storage (locally held variables) and input for lat/lon, which is currently entirely manual to avoid any privacy concerns. I made sure not to add this to the intro, as it helps the user learn about the settings. :D I also improved the screen burn protection, and experimented a bit with that. The last (and largest) improvement I made was the UI of the ‘info’ page, and I plan to do a similar thing to all other pages. There’s a screenshot below. Plans: Total overhaul of other pages, general UI and ANIMATIONS! Also, I plan to add a ‘reading’ section, kinda like a blog based on the work I’ve done and my idea behind it, with the screen-burn protection. Thanks for reading!"}, {"post_id": 2286, "ts": "2026-06-04T18:00:20Z", "hours": 2.7808, "text": "Added a bunch more stuff! I implemented the other pages, added a ‘customisation’ page (settings) where the user can change the styling and screen, and added a bunch more improvements across pages. This isn’t all I added, but I’m trying to keep the devlog short to not be boring. Plans: Fix some things with Safari, fix the location fetching for weather data, and revamp the UI for the customisation page. Also add tons more screens and animations (I still haven’t! XD). I also need to fix a bug where the dark mode is somewhat inconsistent. Thanks for reading, happy coding!"}, {"post_id": 421, "ts": "2026-06-01T20:28:40Z", "hours": 2.0664, "text": "I added tons of cool stuff! I modified and improved the ‘intro’ experience, adding styling pages, alongside a tutorial page for customisation! I also added a system for styling, which looks really nice IMHO! I’d love to hear your feedback on it. I very slightly modified the icons on the first page, but not significantly aside from adding the actual views, rather than placeholders. I added an image of the final page showing the user how to enter the customisation menu, although I plan to modify that a LOT! XD After you click on that, it takes you to the main home page, where I added a CSS-based system protecting against screen burn! (I chose CSS because it’s more reliable against memory leaks and animations are widely supported with very little overhead! :D) There’s a LOT I plan to add still! I want to make the customisation menu, massively improve the UI, and add tons of nice animations and details (like I said I’d do in the previous entry) If you’re interested, I’m using a Trello board to keep track of things! I find it really helpful to organise everything into an ‘ideas’, ‘to-do’, ‘improve’ and ‘done’. :D Thanks for reading my (probably excessively long) devlog! Happy hacking! :)"}, {"post_id": 124, "ts": "2026-05-31T21:05:24Z", "hours": 1.135, "text": "Hey! Excited to make my first devlog! I worked for a few untracked hours on the UI in Figma. I also plotted a nice intro/disclaimer message for the user about screen burn. I’m really happy with the intro page, although I plan to modify the customisation page. :) After that I started coding! I’ve managed to get a working version of the UI for the first two screens, which are both visible below. I’ve added some basic animations, but plan to go quite big on the nice zoom-ey ones for the buttons and stuff, in case anyone (like the people testing!) use a PC. :D Thanks for reading the devlog! Have fun. :D"}]...
|
Title: BetterStandby by @Capy | Stardance
Devlogs Title: BetterStandby by @Capy | Stardance
Devlogs:
Hey! Excited to make my first devlog! I worked for a few untracked hours on the UI in Figma. I also plotted a nice intro/disclaimer message for the user about screen burn. I’m really happy with the intro page, although I plan to modify the customisation page. :) After that I started coding! I’ve managed to get a working version of the UI for the first two screens, which are both visible below. I’ve added some basic animations, but plan to go quite big on the nice zoom-ey ones for the buttons and stuff, in case anyone (like the people testing!) use a PC. :D Thanks for reading the devlog! Have fun. :D
I added tons of cool stuff! I modified and improved the ‘intro’ experience, adding styling pages, alongside a tutorial page for customisation! I also added a system for styling, which looks really nice IMHO! I’d love to hear your feedback on it. I very slightly modified the icons on the first page, but not significantly aside from adding the actual views, rather than placeholders. I added an image of the final page showing the user how to enter the customisation menu, although I plan to modify that a LOT! XD After you click on that, it takes you to the main home page, where I added a CSS-based system protecting against screen burn! (I chose CSS because it’s more reliable against memory leaks and animations are widely supported with very little overhead! :D) There’s a LOT I plan to add still! I want to make the customisation menu, massively improve the UI, and add tons of nice animations and details (like I said I’d do in the previous entry) If you’re interested, I’m using a Trello board to keep track of things! I find it really helpful to organise everything into an ‘ideas’, ‘to-do’, ‘improve’ and ‘done’. :D Thanks for reading my (probably excessively long) devlog! Happy hacking! :)
Added a bunch more stuff! I implemented the other pages, added a ‘customisation’ page (settings) where the user can change the styling and screen, and added a bunch more improvements across pages. This isn’t all I added, but I’m trying to keep the devlog short to not be boring. Plans: Fix some things with Safari, fix the location fetching for weather data, and revamp the UI for the customisation page. Also add tons more screens and animations (I still haven’t! XD). I also need to fix a bug where the dark mode is somewhat inconsistent. Thanks for reading, happy coding!
2h devlog. So I fixed the bugs mentioned at the end of the last devlog, which is great :D I also redesigned the concept of the settings, now there are separate pages for customisation and actual settings. I also implemented that new settings menu, featuring control over storage (locally held variables) and input for lat/lon, which is currently entirely manual to avoid any privacy concerns. I made sure not to add this to the intro, as it helps the user learn about the settings. :D I also improved the screen burn protection, and experimented a bit with that. The last (and largest) improvement I made was the UI of the ‘info’ page, and I plan to do a similar thing to all other pages. There’s a screenshot below. Plans: Total overhaul of other pages, general UI and ANIMATIONS! Also, I plan to add a ‘reading’ section, kinda like a blog based on the work I’ve done and my idea behind it, with the screen-burn protection. Thanks for reading!
BIG devlog! A bunch of really nice features! In reverse order of my preference: Fixed bugs on Safari Some nice outlines for visibility if the user decides on light accent colours. I added a font sizing option in customisation! Added font customisation for both large and small text. Also updated the font styling to work across various screen sizes! And finally… FINALLY! I added ANIMATIONS! They’re really fluid and smooth. Plans: Improve reliability across browsers. Add a font sizing option to smaller text. I’m considering adding PWA detection, but not sure. Also considering some fun documentation for the user/tester to read regarding screen burn protection and the idea of the app. Add more pages! Improve UI. Thanks for reading! (Sorry for any grammar/spelling issues, I type all my devlogs manually lel)
WOW! Lot of work done! I’ll go through them quickly: 1: Capybara 404 page 2: Added GPS geolocation (no more IP :D) 3: Added a fancy new icon! (3 lines of AI code for the meta tags!!!) Speedrun time! Fixed small-screen layout issues, added a ‘hide location’ button in settings, totally revamped settings and customisation, fixed an inconsistency across the starting page and the customisation page, removed a useless button, added a ‘docs’ page talking about the project, spent a while debugging a ‘rogue import’ issue (XD), put default at the top for fonts, improved saving logic and ADDED 5 NEW FONTS! :D They all look great! Everybody welcome: Pliant, Montserrat, Oswald, Roboto Slab, and Pixelify Sans! This gives you up to 49 new combinations! :D Sorry for the long devlog and any mistakes, thanks for reading!
Final Devlog! I (once again) redesigned the settings page, and I’m super happy with the outcome. I also adapted several other pages and made some smaller improvements. I made a README file showcasing some images of the project. I think this will be the last devlog before I ship, so see you guys in the next project, and thanks for reading!
Ships:
I made BetterStandby! It’s a PWA that lets non-iPhones and any phones without an always-on display use a clock face inspired by Apple’s StandBy! It’s highly customisable, featuring custom font size, font, and accent colour, alongside different layouts. It was really fun to build, so thanks for reading! Hope you like it as much as I do :D...
|
1792997259.239515
|
1793083659.239515
|
|
269
|
School Manager by @xarber | Stardance
|
xarber
|
0
|
30.26
|
0
|
[]
|
[{"post_id": 50991, "ts": "202 [{"post_id": 50991, "ts": "2026-08-20T14:12:00Z", "hours": 1.1489, "text": "SideStore / LiveContainer source! Do you want to try School Manager yourself? You can now install the development builds through an AltSource, that you can add yourself from the School Manager github repo! You can also download the .ipa files manually from GitHub Releases. Just open the app and try it yourself!"}, {"post_id": 37594, "ts": "2026-07-30T13:03:30Z", "hours": 10.2097, "text": "Improved server-side security A few adjustments were made server-side: Tokens now expire much earlier, with a refresh token to keep users signed in. Other database endpoint updates were made to ensure safer data handling. Account security updates Together with the server side security enhancements, I also added a session management section in the Sign In & Security page: You can now manage your signed in devices, recognize them with their model or OS + browser, last seen date, and app version. You can easily sign out any of those devices, requiring another sign in. Passkey Renaming As mentioned in the previous devlog, I did add passkey renaming. Now passkeys detect the device you saved the passkey on to give a suggested name, which you can edit at any time. Fixed app themes For some reason app themes broke with an SDK update. I restored functionality, and extended it to the welcome screen. Multiple changes conventional commits I updated the workflow scripts to allow multiple changes inside of one commit: feat: Feature 1; fix: Fix 1; fix: Fix2 All inside of the same commit! These will then be parsed in the github release by the workflow. Switch app building to GitHub Actions server EAS Cloud was disabled. Now all app builds are ran through the GitHub Actions server. I also added an unsigned iOS build, which is installable with SideStore, LiveContainer, or any other similar sideloading app. The iOS builds are compiled with X-Code 27 beta, so the dynamic app resizing is enabled for iOS 27 (You can test by using iPhone mirroring, launching the sideloaded app, and trying to resize the window). Small reminder: You can either install the development build, OR, you can test the app by installing the PWA when opening the website version!"}, {"post_id": 32495, "ts": "2026-07-21T18:31:27Z", "hours": 4.8581, "text": "Passkeys are live! This took me a while to develop, but passkeys are finally live! There’s a passkey management screen in settings, with a list of all saved passkeys, when they were last used and when they were added. You can delete them, or add new ones using web authentication. This is a temporary workaround since Apple requires you to have a paid developer license to use passkeys in-app. What’s next? I’d like to add passkey renaming in settings (and regular passkey naming in the registration screen), OR a database with automatically detected names for each Passkey handler ID. I’m currently trying to get the app to build on X-Code 27 beta. This would use the new SDK and allow apps to dynamically resize when using iPhone mirroring or the xcode device hub. It would be a huge improvement for testing, since I would be able to test everything 100% from my mac without having an ipad simulator or have to bring a physical device around."}, {"post_id": 31140, "ts": "2026-07-19T09:45:17Z", "hours": 13.7719, "text": "Passkeys I’ve been working on this for a while. I’m currently adding passkeys and security keys support to the app! The app has been based on OTP codes since release, I’m also adding passkey support so that no waiting for emails is needed. You will still need a verified email in order to sign up, but you will be able to use passkeys for future authentications. I also think about adding an authenticator app OTP generator to replace email OTPs altogether (for added security in case of a stolen email account), but it’s a work in progress (PS: Again, you will still need a verified email address to sign up). GitHub Workflows! This took me ages to build. I implemented workflows and multiple branches: Master (Release) Beta Alpha Development Testing (no workflows here) On every push, two jobs run: One updates the website (only on master pushes), and also runs eas update to the specified update branch. The other job is the most interesting: It checks for version changes in the app.json file, and if the version changed, it starts building a new binary for the app: Signed iOS Simulator (.tar.gz app file), “Signed” Android APK (or AAB if the branch is Beta/Master), and unsigned iOS .ipa file (since I have no paid developer license yet). The first two are ran through EAS Cloud, and then downloaded by the workflow. The unsigned build runs directly on GitHub Actions’s servers. After having the artifacts, they get renamed to human readable names, and release notes are automatically generated with the adoption of conventional commits (fix: … | ci: … | feat: … | etc). The script later proceeds to create a release and a tag for said update, and draft it to the github repo. This means I no longer have to manage builds myself, which sometimes took several hours to fix environment issues and more. It also means that whenever I push an update, the app automatically reflects said update in an appropriate branch (we don’t like testing in production, right?)."}, {"post_id": 945, "ts": "2026-06-02T18:26:17Z", "hours": 0.2667, "text": "Now on Stardance! Hi everyone! Welcome to Stardance! I can’t wait to start seeing everyone’s amazing projects, and to start coding my own! I actually have a few ideas boiling in the pot, many of which I’ve already created projects for. Good coding to everyone! About School Manager The development of the app will be continued in Stardance! There aren’t many updates since the last devlog in Flavortown, I’m trying to organize my ideas and clean some code before continuing development. Have fun everyone!"}]...
|
Title: School Manager by @xarber | Stardance
Devl Title: School Manager by @xarber | Stardance
Devlogs:
Now on Stardance! Hi everyone! Welcome to Stardance! I can’t wait to start seeing everyone’s amazing projects, and to start coding my own! I actually have a few ideas boiling in the pot, many of which I’ve already created projects for. Good coding to everyone! About School Manager The development of the app will be continued in Stardance! There aren’t many updates since the last devlog in Flavortown, I’m trying to organize my ideas and clean some code before continuing development. Have fun everyone!
Passkeys I’ve been working on this for a while. I’m currently adding passkeys and security keys support to the app! The app has been based on OTP codes since release, I’m also adding passkey support so that no waiting for emails is needed. You will still need a verified email in order to sign up, but you will be able to use passkeys for future authentications. I also think about adding an authenticator app OTP generator to replace email OTPs altogether (for added security in case of a stolen email account), but it’s a work in progress (PS: Again, you will still need a verified email address to sign up). GitHub Workflows! This took me ages to build. I implemented workflows and multiple branches: Master (Release) Beta Alpha Development Testing (no workflows here) On every push, two jobs run: One updates the website (only on master pushes), and also runs eas update to the specified update branch. The other job is the most interesting: It checks for version changes in the app.json file, and if the version changed, it starts building a new binary for the app: Signed iOS Simulator (.tar.gz app file), “Signed” Android APK (or AAB if the branch is Beta/Master), and unsigned iOS .ipa file (since I have no paid developer license yet). The first two are ran through EAS Cloud, and then downloaded by the workflow. The unsigned build runs directly on GitHub Actions’s servers. After having the artifacts, they get renamed to human readable names, and release notes are automatically generated with the adoption of conventional commits (fix: … | ci: … | feat: … | etc). The script later proceeds to create a release and a tag for said update, and draft it to the github repo. This means I no longer have to manage builds myself, which sometimes took several hours to fix environment issues and more. It also means that whenever I push an update, the app automatically reflects said update in an appropriate branch (we don’t like testing in production, right?).
Passkeys are live! This took me a while to develop, but passkeys are finally live! There’s a passkey management screen in settings, with a list of all saved passkeys, when they were last used and when they were added. You can delete them, or add new ones using web authentication. This is a temporary workaround since Apple requires you to have a paid developer license to use passkeys in-app. What’s next? I’d like to add passkey renaming in settings (and regular passkey naming in the registration screen), OR a database with automatically detected names for each Passkey handler ID. I’m currently trying to get the app to build on X-Code 27 beta. This would use the new SDK and allow apps to dynamically resize when using iPhone mirroring or the xcode device hub. It would be a huge improvement for testing, since I would be able to test everything 100% from my mac without having an ipad simulator or have to bring a physical device around.
Improved server-side security A few adjustments were made server-side: Tokens now expire much earlier, with a refresh token to keep users signed in. Other database endpoint updates were made to ensure safer data handling. Account security updates Together with the server side security enhancements, I also added a session management section in the Sign In & Security page: You can now manage your signed in devices, recognize them with their model or OS + browser, last seen date, and app version. You can easily sign out any of those devices, requiring another sign in. Passkey Renaming As mentioned in the previous devlog, I did add passkey renaming. Now passkeys detect the device you saved the passkey on to give a suggested name, which you can edit at any time. Fixed app themes For some reason app themes broke with an SDK update. I restored functionality, and extended it to the welcome screen. Multiple changes conventional commits I updated the workflow scripts to allow multiple changes inside of one commit: feat: Feature 1; fix: Fix 1; fix: Fix2 All inside of the same commit! These will then be parsed in the github release by the workflow. Switch app building to GitHub Actions server EAS Cloud was disabled. Now all app builds are ran through the GitHub Actions server. I also added an unsigned iOS build, which is installable with SideStore, LiveContainer, or any other similar sideloading app. The iOS builds are compiled with X-Code 27 beta, so the dynamic app resizing is enabled for iOS 27 (You can test by using iPhone mirroring, launching the sideloaded app, and trying to resize the window). Small reminder: You can either install the development build, OR, you can test the app by installing the PWA when opening the website version!
SideStore / LiveContainer source! Do you want to try School Manager yourself? You can now install the development builds through an AltSource, that you can add yourself from the School Manager github repo! You can also download the .ipa files manually from GitHub Releases. Just open the app and try it yourself!...
|
1792511264.6086454
|
1793116064.6086454
|
|
268
|
Untitled project by @siemvk | Stardance
|
siemvk
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @siemvk | Stardance
|
1792921663.6644623
|
1793785663.6644623
|
|
267
|
Gitindex by @Matthias | Stardance
|
Matthias
|
0
|
4.47
|
0
|
[]
|
[{"post_id": 46810, "ts": "202 [{"post_id": 46810, "ts": "2026-08-14T10:09:39Z", "hours": 0.3667, "text": "Today I’m working on implementing an iconset for the github filetree, I asked myself where the best place was to get a bunch of developer icons and decided to use the vscode ones, wrote a helper to extract the extension -> icon manifest and set up a quick css query to make the icons monochrome for light and dark mode, like the one below"}, {"post_id": 46241, "ts": "2026-08-13T10:45:36Z", "hours": 1.0611, "text": "I added a new feature that makes the header sticky along with some polish"}, {"post_id": 46199, "ts": "2026-08-13T08:11:24Z", "hours": 1.9131, "text": "Ok, so after quite some time off I thought why not get back to hackclubbing and so I am continuing Gitindex, in the last commit I implemented an animation for the language diagram and adjusted some DOM-selectors so the extension doesn’t break. Honestly I am preparing for CWS release: implementing last features and polishing, bye"}, {"post_id": 321, "ts": "2026-06-01T16:33:16Z", "hours": 1.1294, "text": "Am currently building a prototype for the all actions menu, let’s see how this goes, will continue to develop now."}]...
|
Title: Gitindex by @Matthias | Stardance
Devlogs: Title: Gitindex by @Matthias | Stardance
Devlogs:
Am currently building a prototype for the all actions menu, let’s see how this goes, will continue to develop now.
Ok, so after quite some time off I thought why not get back to hackclubbing and so I am continuing Gitindex, in the last commit I implemented an animation for the language diagram and adjusted some DOM-selectors so the extension doesn’t break. Honestly I am preparing for CWS release: implementing last features and polishing, bye
I added a new feature that makes the header sticky along with some polish
Today I’m working on implementing an iconset for the github filetree, I asked myself where the best place was to get a bunch of developer icons and decided to use the vscode ones, wrote a helper to extract the extension -> icon manifest and set up a quick css query to make the icons monochrome for light and dark mode, like the one below...
|
1792565472.422445
|
1793170272.422445
|
|
266
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792929247.5750747
|
1793793247.5750747
|
|
265
|
Gitindex by @Matthias | Stardance
|
Matthias
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Gitindex by @Matthias | Stardance
|
1792759677.9661965
|
1793364477.9661965
|
|
264
|
Untitled project by @shankkyyyy | Stardance
|
shankkyyyy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @shankkyyyy | Stardance
|
1792515142.28927
|
1793119942.28927
|
|
263
|
Untitled project by @miggy | Stardance
|
miggy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @miggy | Stardance
|
1792759662.126916
|
1793364462.126916
|
|
262
|
Macropad V2 by @Tirthak | Stardance
|
Tirthak
|
0
|
3.74
|
0
|
[]
|
[{"post_id": 1480, "ts": "2026 [{"post_id": 1480, "ts": "2026-06-03T15:06:53Z", "hours": 1.4178, "text": "so basically completed the schematic and continued working on the PCB. a lot of parts and traces are still remaining but this is how it looks rn:"}, {"post_id": 1110, "ts": "2026-06-02T22:50:31Z", "hours": 2.325, "text": "So Basically i started by researching stuff as in what to use, then after finding the appropriate parts moved on to designing and making the PCB and schematic together."}]...
|
Title: Macropad V2 by @Tirthak | Stardance
Devlog Title: Macropad V2 by @Tirthak | Stardance
Devlogs:
So Basically i started by researching stuff as in what to use, then after finding the appropriate parts moved on to designing and making the PCB and schematic together.
so basically completed the schematic and continued working on the PCB. a lot of parts and traces are still remaining but this is how it looks rn:...
|
1792741767.4950216
|
1793346567.4950216
|
|
261
|
My website by @Jonas | Stardance
|
Jonas
|
0
|
0.34
|
0
|
[]
|
[{"post_id": 2974, "ts": "2026 [{"post_id": 2974, "ts": "2026-06-05T21:51:02Z", "hours": 0.3442, "text": "A bit terrible but it a start"}]...
|
Title: My website by @Jonas | Stardance
Devlogs:
Title: My website by @Jonas | Stardance
Devlogs:
A bit terrible but it a start...
|
1792651712.7489386
|
1793256512.7489386
|
|
260
|
Untitled project by @mustafa | Stardance
|
mustafa
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @mustafa | Stardance
|
1792738436.8470793
|
1793343236.8470793
|
|
259
|
something by @Alisha | Stardance
|
Alisha
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: something by @Alisha | Stardance
|
1792741871.6439826
|
1793346671.6439826
|
|
258
|
Hmm… :thinkies: by @GB114 | Stardance
|
GB114
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Hmm… :thinkies: by @GB114 | Stardance
|
1792569271.8056815
|
1793174071.8056815
|
|
257
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792939787.2344487
|
1793803787.2344487
|
|
256
|
Frictionless by @lucasian | Stardance
|
lucasian
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @lucasian | Stardance
|
1792741825.5562634
|
1793346625.5562634
|
|
255
|
WarioWare Game by @Shubhankar | Stardance
|
Shubhankar
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @Shubhankar | Stardance
|
1792734623.282038
|
1793339423.282038
|
|
254
|
GitPilot-n8n: The Autonomous Open Source AI Agent GitPilot-n8n: The Autonomous Open Source AI Agent by @jawadhasan | Stardance...
|
jawadhasan
|
1
|
6.33
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T15:18:40Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a Multi-Agentic workflow that constantly monitors any issues on Github and notifies its developers. It is set up on a repository. I still don’t know how I built it. When I planned it first. it seemed so hard. and when I was building this project, I saw some errors that I never saw before and even after that I had to alter my initial plan. But it works now fortunately.", "repo": "https://github.com/Jawad2011/GitPilot-n8n-The-Autonomous-Open-Source-AI-Agent", "demo": "https://github.com/Jawad2011/Gitpilot-test-sandbox/issues"}]...
|
[{"post_id": 5384, "ts": "2026 [{"post_id": 5384, "ts": "2026-06-09T04:02:28Z", "hours": 0.3336, "text": "Made it demoable, added demo instructions and fixed some typos. Readt re reship."}, {"post_id": 3533, "ts": "2026-06-06T14:52:48Z", "hours": 0.51, "text": "Finally finished writing my README. Now, it’s time to ship my project. I don’t know if it will be good or not but I will try. Let’s see what happens."}, {"post_id": 2787, "ts": "2026-06-05T16:29:50Z", "hours": 2.4467, "text": "Hello, i don’t know but I am struggling a lot. The tool I use is n8n which is an open-source AI Automation tool. But it has many problems and especially I face more struggles because of my server being rented. Firstly, I wanted to use MCP server and built it on my own but unfortunately due to some errors and proxies on which I had no control over, i was unable to connect it. Then, I directly connected it directly my main AI Agent node."}, {"post_id": 1952, "ts": "2026-06-04T06:19:14Z", "hours": 2.5161, "text": "Hello, I worked for about 2 and a half hours trying to write a Python script to parse the data to only find out that Python isn’t installed in the n8n server. I use a student-only n8n server which charges $17 per 3 years. Python3 wasn’t installed there. So, I had to find an alternative and used a Set Node instead. And also added an AI Agent and build a MCP Server so the AI Agent can use the tools without creating a mess in the original workflow."}, {"post_id": 656, "ts": "2026-06-02T05:52:21Z", "hours": 0.4222, "text": "Built the initial phase successfully after debugging and learning that AI Model cannot take raw JSON and you have to stringify it."}]...
|
Title: GitPilot-n8n: The Autonomous Open Source AI Title: GitPilot-n8n: The Autonomous Open Source AI Agent by @jawadhasan | Stardance
Devlogs:
Built the initial phase successfully after debugging and learning that AI Model cannot take raw JSON and you have to stringify it.
Hello, I worked for about 2 and a half hours trying to write a Python script to parse the data to only find out that Python isn’t installed in the n8n server. I use a student-only n8n server which charges $17 per 3 years. Python3 wasn’t installed there. So, I had to find an alternative and used a Set Node instead. And also added an AI Agent and build a MCP Server so the AI Agent can use the tools without creating a mess in the original workflow.
Hello, i don’t know but I am struggling a lot. The tool I use is n8n which is an open-source AI Automation tool. But it has many problems and especially I face more struggles because of my server being rented. Firstly, I wanted to use MCP server and built it on my own but unfortunately due to some errors and proxies on which I had no control over, i was unable to connect it. Then, I directly connected it directly my main AI Agent node.
Finally finished writing my README. Now, it’s time to ship my project. I don’t know if it will be good or not but I will try. Let’s see what happens.
Made it demoable, added demo instructions and fixed some typos. Readt re reship.
Ships:
I built a Multi-Agentic workflow that constantly monitors any issues on Github and notifies its developers. It is set up on a repository. I still don’t know how I built it. When I planned it first. it seemed so hard. and when I was building this project, I saw some errors that I never saw before and even after that I had to alter my initial plan. But it works now fortunately....
|
1792990566.5577626
|
1793076966.5577626
|
|
253
|
explosion by @z | Stardance
|
z
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: explosion by @z | Stardance
|
1792652074.6653073
|
1793256874.6653073
|
|
252
|
Momentum by @glitch_purge | Stardance
|
glitch_purge
|
0
|
3.64
|
0
|
[]
|
[{"post_id": 22888, "ts": "202 [{"post_id": 22888, "ts": "2026-07-05T15:01:40Z", "hours": 1.0428, "text": "Momentum Devlog 4 - Upcoming Assignments, and bug fixes So I’ve started work on the upcoming assignments part of the dashboard and it looks good. The assignments I’ve put are just random stuff I made up and I spent quite a while trying to get good sizing for mobile and it went well to say the least. As before, nothing is dynamic (aka work with real values and the user) but I think I will start work on that after I finish the calendar on the side that I want to add & after I finish the Assignments tab. I like how its coming out so far and I’ve reduced the AI mockup usage a lot so the mockup and my website are wayyy different now!"}, {"post_id": 15177, "ts": "2026-06-24T17:36:24Z", "hours": 1.3464, "text": "Momentum Devlog 3 - Topbar, hamburger sidebar, 4/4 cards I added the topbar in detail like the hello, date and time text and the quick utilities buttons + user logo. Started on the cards info system so 4 cards that give you info on your current stats. Finsihed all 4. There is a hamburger menu when u go on smaller devices but I did that using Claude. Hear me out - I’m lazy to do that and I just didn’t want to break my whole system for that T-T. I will add quotes next devlog, and soon enough will start linking everything into a dynamic website using JS!"}, {"post_id": 14226, "ts": "2026-06-23T07:32:30Z", "hours": 0.5975, "text": "Momentum Devlog 2 - Built this sidebar for the app. Changed the style to be a bit more modern and sleek. Used AI to generate a mockup and building using that. The mockup messed up a bit so some features are not where I want them but that gives me a lot of creativity to add my own stuff. Idea was mine, mockup was chatgpt’s and I’m only using the mockup for dashboard. Rest all pages will be made using that."}, {"post_id": 13775, "ts": "2026-06-22T16:04:40Z", "hours": 0.6492, "text": "Devlog 01 - Sidebar and topbar Worked on the sidebar and topbar after spending 2+ hours designing a mockup in figma. Haven’t done HTML & CSS in a long time so this was a bit of a struggle but relatively easy. Building every component static rn, will use only JS (normal JS) to build the proper website with information. Tryna store every data on cookies"}]...
|
Title: Momentum by @glitch_purge | Stardance
Devl Title: Momentum by @glitch_purge | Stardance
Devlogs:
Devlog 01 - Sidebar and topbar Worked on the sidebar and topbar after spending 2+ hours designing a mockup in figma. Haven’t done HTML & CSS in a long time so this was a bit of a struggle but relatively easy. Building every component static rn, will use only JS (normal JS) to build the proper website with information. Tryna store every data on cookies
Momentum Devlog 2 - Built this sidebar for the app. Changed the style to be a bit more modern and sleek. Used AI to generate a mockup and building using that. The mockup messed up a bit so some features are not where I want them but that gives me a lot of creativity to add my own stuff. Idea was mine, mockup was chatgpt’s and I’m only using the mockup for dashboard. Rest all pages will be made using that.
Momentum Devlog 3 - Topbar, hamburger sidebar, 4/4 cards I added the topbar in detail like the hello, date and time text and the quick utilities buttons + user logo. Started on the cards info system so 4 cards that give you info on your current stats. Finsihed all 4. There is a hamburger menu when u go on smaller devices but I did that using Claude. Hear me out - I’m lazy to do that and I just didn’t want to break my whole system for that T-T. I will add quotes next devlog, and soon enough will start linking everything into a dynamic website using JS!
Momentum Devlog 4 - Upcoming Assignments, and bug fixes So I’ve started work on the upcoming assignments part of the dashboard and it looks good. The assignments I’ve put are just random stuff I made up and I spent quite a while trying to get good sizing for mobile and it went well to say the least. As before, nothing is dynamic (aka work with real values and the user) but I think I will start work on that after I finish the calendar on the side that I want to add & after I finish the Assignments tab. I like how its coming out so far and I’ve reduced the AI mockup usage a lot so the mockup and my website are wayyy different now!...
|
1792634111.5515468
|
1793238911.5515468
|
|
251
|
WarioWare Game by @mani | Stardance
|
mani
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @mani | Stardance
|
1792903754.5518827
|
1793767754.5518827
|
|
250
|
Suri by @git | Stardance
|
git
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Suri by @git | Stardance
|
1792896665.1801078
|
1793760665.1801078
|
|
249
|
Testing Gmaes by @Adhyys | Stardance
|
Adhyys
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Testing Gmaes by @Adhyys | Stardance
|
1792738472.850111
|
1793343272.850111
|
|
248
|
Nintendo DS game by @HaxJaxFaxTrax | Stardance
|
HaxJaxFaxTrax
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Nintendo DS game by @HaxJaxFaxTrax | Starda Title: Nintendo DS game by @HaxJaxFaxTrax | Stardance...
|
1792925277.5505586
|
1793789277.5505586
|
|
247
|
mailman by @afonso | Stardance
|
afonso
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: mailman by @afonso | Stardance
|
1792655715.0099795
|
1793260515.0099795
|
|
246
|
Extersmeller by @autismcreature | Stardance
|
autismcreature
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Extersmeller by @autismcreature | Stardance
|
1792615655.665682
|
1793220455.665682
|
|
245
|
Frictionless by @winf | Stardance
|
winf
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @winf | Stardance
|
1792594345.3511608
|
1793199145.3511608
|
|
244
|
roguelite game by @maddy | Stardance
|
maddy
|
0
|
0.36
|
0
|
[]
|
[{"post_id": 2313, "ts": "2026 [{"post_id": 2313, "ts": "2026-06-04T18:51:22Z", "hours": 0.3572, "text": "I added movement! It’s a grid-based movement that I just followed from a tutorial, but I did modify it a bit."}]...
|
Title: roguelite game by @maddy | Stardance
Devlo Title: roguelite game by @maddy | Stardance
Devlogs:
I added movement! It’s a grid-based movement that I just followed from a tutorial, but I did modify it a bit....
|
1792554630.4381769
|
1793159430.4381769
|
|
243
|
fineLang by @sebastian | Stardance
|
sebastian
|
0
|
10.22
|
0
|
[]
|
[{"post_id": 31398, "ts": "202 [{"post_id": 31398, "ts": "2026-07-19T18:48:29Z", "hours": 3.2158, "text": "HOLDUP DID I COOK (dieLog #2) Finished : automatic “INDENT” and “DEDENT” enables codegen to space out blocks of code. : “IF” statement uses the new automatic system trough recusion : MAIN() function search for stzarting function for a basic C sytax. : Math OPERATORS such as “is” “is_not” “grater_than” less than… you get the point. Since in suffer levels 1 and 2 are used basic symbol types “<,>” etc, i didnt bother much checking the correctnbes of the implementation. CODE EXAMPLE (with the new stuff): - fineLang -> SUFFER: two ; FUNCTION main(): let x = 5 if x > 3: print(x) if x > 4: print(x) let y = 6 if (x add y > 10): print(“hi”) to C -> #include <stdio.h> int main() { int x = 5; if (x > 3) { printf(“%d\\n”, x); if (x > 4) { printf(“%d\\n”, x); int y = 6; if (x + y > 10) { printf(“hi\\n”); } } } } INTO THE ULTIMATE COMPILED STATE -> 5 5 hi To be honest. this was a very complicated test case, and i wouldnt lie if i said that If this fails i wouldnt be surprised THATS IT FOR TODAY!! thanks you for your time and have a nice day :>)"}, {"post_id": 30335, "ts": "2026-07-17T20:12:46Z", "hours": 1.1572, "text": "DieLog Heres what majestic stuff have we done Finelang now accepts CALCULATING OPERATORS and CHAINED calculated operation. lets give ourselves a representation let x = 5 add 7 multiuply 9 let y = x subtract 67 this adequetly transforms the code to the correct math operators, and let our big dawg figure out the operations. ’ lets see for ourselves. fineLang -> ´´´ SUFFER: two ; FUNCTION main(): let x = 5.5 times 2 let y = x divide 6 print(x) print(y) return 0 ´´´ into correct C ´´´ #include <stdio.h> int main() { float x = 5.5 * 2; float y = x / 6; printf(“%f\\n”, x); printf(“%f\\n”, y); return 0; } ´´´ this was amazingly painfull to do and im glad it works :) tomorows work is automationg codegen tabs / spaces, and being able for new code blocks"}, {"post_id": 30040, "ts": "2026-07-17T09:37:01Z", "hours": 0.4875, "text": "Float as pieces i modified our regex in tokeniser to accept numbers 0-9 with a dot inbetween and number(s) after this gets by tokeniser recognised as pices and codegen now correctly outputs it with F in the C printf command. The biggest problem C standartly takes 6 nuámbers after the dot so from x=5.6 you get 5.600000. That aint a big of a deal. Todo: Implement math opoerations, that can be cahined. Impement cloasable block operationh (function doesnt run until the end of a file) This also allows for automatic tabs in codegen instead of manual and allows implementation of someting like if/else"}, {"post_id": 29726, "ts": "2026-07-16T20:20:58Z", "hours": 1.5789, "text": "We got wokring avriables? so for levels 1 and 2 you dont need to define the type of variables, we right now have words - char* whole - int Incoming 3. ‘pieces’ for float in the codegen i designed a list lookup where if you create a vaiable with let its type, datatype name and value can be looked up for easyprint. parser had MAJOR fallback flaws witch i also patched. There was one teeny beeny mess up where i had if statement that basically said if (string) “IDENTIFIER” is equal to the equal sign. :( BUT WE KNOW FINELANG WORKS. tomorrow there comes maybe piees data type and “if” “else” statements ?"}, {"post_id": 29550, "ts": "2026-07-16T15:44:52Z", "hours": 0.5236, "text": "THIS CONCEPT WORKS so i completed the codegen to actualy buuild the C code, and made in main.py to open a new file called output.c Next output.c is compiled with gcc trough subprocess. if compilation succeeds we also call the binary itself, and THTS IT. next steps are to recognise and properly save variables and then be able to print them"}, {"post_id": 29504, "ts": "2026-07-16T14:13:11Z", "hours": 0.7756, "text": "What happened belive it or not, i made a working parser that works with all out keyword comands function, return,print, and let. Function- sadly right now couts as a non ending function so it ondly recursivly calls parse fro rest of the file, but thats easy solvable issue., Parser now generates correct AST, witch after building Codegen can be correctly transpiled into C heres a comparison code w/ AST code: SUFFER: two ; FUNCTION main(): let x = 5 print(“hello world”) return 0 AST: [{‘type’: ‘function’, ‘name’: ‘main’, ‘body’: [{‘type’: ‘let’, ‘name’: ‘x’, ‘value’: 5}, {‘type’: ‘print’, ‘value’: ‘hello world’}, {‘type’: ‘return’, ‘value’: 0}]}] as we can see theres a list (body) inside the whole list as a part od the main function. This is enough to generate correct C and run it ! since last time i also implemented errors.py witch is only a library of custom errors dataclas. the point of that is that with mopre complexity in our programming language the more feedback we need to guive to the coder to tell him “hey you did this wrong!” instead of “you fricked up” because that wouldnt be fun in the picture we can see my terminal as a proof of the working error and parser. someone told me theres no need for a wirtual enviroment, but its better to keep track of stuff even tho we wont be needing any more packages. BUT if we did then its good practice after compiling the compiler to have all the necesary packages already installed."}, {"post_id": 29438, "ts": "2026-07-16T11:55:24Z", "hours": 0.7133, "text": "so, i implemented a error checking if string is open, and updated my tokenizer to recognise a group of words in “” aqs one big string. implemented error witch is called on unclosed strings"}, {"post_id": 29159, "ts": "2026-07-15T21:21:30Z", "hours": 0.6214, "text": "I have “completed” our tokenizer and validator that ensures correct “SUFFER” declaration. if we tokenize the code from our first devlog we get this"}, {"post_id": 29141, "ts": "2026-07-15T20:32:56Z", "hours": 1.1439, "text": "today i started to make basic “compiler|” for level 1 and 2. if you want to see how finelangs going to work there is a attached snippet and you can see for yourself the whole idea in readme of the project"}]...
|
Title: fineLang by @sebastian | Stardance
Devlogs Title: fineLang by @sebastian | Stardance
Devlogs:
today i started to make basic “compiler|” for level 1 and 2. if you want to see how finelangs going to work there is a attached snippet and you can see for yourself the whole idea in readme of the project
I have “completed” our tokenizer and validator that ensures correct “SUFFER” declaration. if we tokenize the code from our first devlog we get this
so, i implemented a error checking if string is open, and updated my tokenizer to recognise a group of words in “” aqs one big string. implemented error witch is called on unclosed strings
What happened belive it or not, i made a working parser that works with all out keyword comands function, return,print, and let. Function- sadly right now couts as a non ending function so it ondly recursivly calls parse fro rest of the file, but thats easy solvable issue., Parser now generates correct AST, witch after building Codegen can be correctly transpiled into C heres a comparison code w/ AST code: SUFFER: two ; FUNCTION main(): let x = 5 print(“hello world”) return 0 AST: [{‘type’: ‘function’, ‘name’: ‘main’, ‘body’: [{‘type’: ‘let’, ‘name’: ‘x’, ‘value’: 5}, {‘type’: ‘print’, ‘value’: ‘hello world’}, {‘type’: ‘return’, ‘value’: 0}]}] as we can see theres a list (body) inside the whole list as a part od the main function. This is enough to generate correct C and run it ! since last time i also implemented errors.py witch is only a library of custom errors dataclas. the point of that is that with mopre complexity in our programming language the more feedback we need to guive to the coder to tell him “hey you did this wrong!” instead of “you fricked up” because that wouldnt be fun in the picture we can see my terminal as a proof of the working error and parser. someone told me theres no need for a wirtual enviroment, but its better to keep track of stuff even tho we wont be needing any more packages. BUT if we did then its good practice after compiling the compiler to have all the necesary packages already installed.
THIS CONCEPT WORKS so i completed the codegen to actualy buuild the C code, and made in main.py to open a new file called output.c Next output.c is compiled with gcc trough subprocess. if compilation succeeds we also call the binary itself, and THTS IT. next steps are to recognise and properly save variables and then be able to print them
We got wokring avriables? so for levels 1 and 2 you dont need to define the type of variables, we right now have words - char* whole - int Incoming 3. ‘pieces’ for float in the codegen i designed a list lookup where if you create a vaiable with let its type, datatype name and value can be looked up for easyprint. parser had MAJOR fallback flaws witch i also patched. There was one teeny beeny mess up where i had if statement that basically said if (string) “IDENTIFIER” is equal to the equal sign. :( BUT WE KNOW FINELANG WORKS. tomorrow there comes maybe piees data type and “if” “else” statements ?
Float as pieces i modified our regex in tokeniser to accept numbers 0-9 with a dot inbetween and number(s) after this gets by tokeniser recognised as pices and codegen now correctly outputs it with F in the C printf command. The biggest problem C standartly takes 6 nuámbers after the dot so from x=5.6 you get 5.600000. That aint a big of a deal. Todo: Implement math opoerations, that can be cahined. Impement cloasable block operationh (function doesnt run until the end of a file) This also allows for automatic tabs in codegen instead of manual and allows implementation of someting like if/else
DieLog Heres what majestic stuff have we done Finelang now accepts CALCULATING OPERATORS and CHAINED calculated operation. lets give ourselves a representation let x = 5 add 7 multiuply 9 let y = x subtract 67 this adequetly transforms the code to the correct math operators, and let our big dawg figure out the operations. ’ lets see for ourselves. fineLang -> ´´´ SUFFER: two ; FUNCTION main(): let x = 5.5 times 2 let y = x divide 6 print(x) print(y) return 0 ´´´ into correct C ´´´ #include <stdio.h> int main() { float x = 5.5 * 2; float y = x / 6; printf(“%f\n”, x); printf(“%f\n”, y); return 0; } ´´´ this was amazingly painfull to do and im glad it works :) tomorows work is automationg codegen tabs / spaces, and being able for new code blocks
HOLDUP DID I COOK (dieLog #2) Finished : automatic “INDENT” and “DEDENT” enables codegen to space out blocks of code. : “IF” statement uses the new automatic system trough recusion : MAIN() function search for stzarting function for a basic C sytax. : Math OPERATORS such as “is” “is_not” “grater_than” less than… you get the point. Since in suffer levels 1 and 2 are used basic symbol types “<,>” etc, i didnt bother much checking the correctnbes of the implementation. CODE EXAMPLE (with the new stuff): - fineLang -> SUFFER: two ; FUNCTION main(): let x = 5 if x > 3: print(x) if x > 4: print(x) let y = 6 if (x add y > 10): print(“hi”) to C -> #include <stdio.h> int main() { int x = 5; if (x > 3) { printf(“%d\n”, x); if (x > 4) { printf(“%d\n”, x); int y = 6; if (x + y > 10) { printf(“hi\n”); } } } } INTO THE ULTIMATE COMPILED STATE -> 5 5 hi To be honest. this was a very complicated test case, and i wouldnt lie if i said that If this fails i wouldnt be surprised THATS IT FOR TODAY!! thanks you for your time and have a nice day :>)...
|
1792788567.6631362
|
1793393367.6631362
|
|
242
|
Stardance Tracker by @mahad | Stardance
|
mahad
|
1
|
1.0
|
5
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-01T12:46:52Z", "hours": 1.0, "multiplier": 7.23, "payout": 5, "blessing": "neutral", "text": "Shipped Stardance Tracker! It’s now live at #stardance-tracker.", "repo": "https://github.com/skyfallwastaken/stardance-monitor", "demo": "https://hackclub.enterprise.slack.com/archives/C0AR3JDCE8L"}]...
|
[{"post_id": 248, "ts": "2026- [{"post_id": 248, "ts": "2026-06-01T12:42:31Z", "hours": 0.6942, "text": "It works! Check it out at #stardance-monitor!"}]...
|
Title: Stardance Tracker by @mahad | Stardance
De Title: Stardance Tracker by @mahad | Stardance
Devlogs:
It works! Check it out at #stardance-monitor!
Ships:
Shipped Stardance Tracker! It’s now live at #stardance-tracker....
|
1792983174.3456957
|
1793069574.3456957
|
|
241
|
Starborn by @praco | Stardance
|
praco
|
0
|
16.57
|
0
|
[]
|
[{"post_id": 16262, "ts": "202 [{"post_id": 16262, "ts": "2026-06-26T13:20:37Z", "hours": 5.1297, "text": "Implemented dashing! The dash is handled as a coroutine, meaning it runs over multiple frames without blocking the rest of the game. When the player presses dash, gravity is temporarily disabled and the player is launched horizontally at a fixed speed in the direction they’re facing. Normal movement is locked out for the duration. After a set time the gravity is restored, and the player has to wait through a cooldown before they can dash again. The dash animation has two parts, one of the player turning into a literal star and the other is the star looping throughout the dash. Took me a long time to implement cuz things kept breaking lol. Also may have spent 2 hours trying to fix an animation error that had nothing to do with the animator but rather the thing that was checking for the ground.. wasnt actually near the ground. Which led to the player never being grounded… and the animations never starting…. oops."}, {"post_id": 15133, "ts": "2026-06-24T16:18:39Z", "hours": 1.1978, "text": "Animations! i added in the idle, walking and jumping animations. Still need to add the dash animation but i plan on doing that after i finish drawing the backgrounds and tiles. Also added variable gravity for jumping and falling, though i might tweak it more since i want the player to feel weightless."}, {"post_id": 14610, "ts": "2026-06-23T19:41:10Z", "hours": 3.425, "text": "Worked on the player’s core movement today! I implemented horizontal movement using Unity’s new input system and handled the actual movement in FixedUpdate() by directly setting the rigidbody2D’s velocity. I also added sprite flipping by changing the player’s x scale based on movement direction. I then implemented jumping with a ground check using an OverlapCircle, so the player can only jump while grounded. Finally, I added variable jump height by cutting the player’s upward velocity when the jump button is released early. This is the first time i’m seriously making a game so this took me embarrassingly long lol but well everyone starts somewhere!"}, {"post_id": 11489, "ts": "2026-06-18T19:26:08Z", "hours": 2.3028, "text": "Animation is tough but i’m tougher (somebody save me T-T) PS: i threw the customisable player out the window for now, maybe ill add it in future updates when I’m done making the game"}, {"post_id": 10785, "ts": "2026-06-17T18:14:23Z", "hours": 0.7436, "text": "Small devlog. Made the banner (YAY) now ill continue making more art tmr goodnight zzzzzzz"}, {"post_id": 10669, "ts": "2026-06-17T15:07:28Z", "hours": 3.0053, "text": "Have you ever wanted to fight a neutron star? yes those extremely dense dead stars??? or strange stars that aren’t even real but a hypothetical concept???? dont lie ik you have!! well now you can!!!!!! in my new game Starborn™ !!! thank me later"}, {"post_id": 8071, "ts": "2026-06-13T14:07:58Z", "hours": 0.7658, "text": "First devlog! designed the main character(s) of my game, where you play as a star. It was quite difficult to come up w a design for a star, but I’m pretty happy with this sketch!! i wanna make it customisable by the player, so maybe ill draw some more variants next. baibai :P"}]...
|
Title: Starborn by @praco | Stardance
Devlogs:
Fi Title: Starborn by @praco | Stardance
Devlogs:
First devlog! designed the main character(s) of my game, where you play as a star. It was quite difficult to come up w a design for a star, but I’m pretty happy with this sketch!! i wanna make it customisable by the player, so maybe ill draw some more variants next. baibai :P
Have you ever wanted to fight a neutron star? yes those extremely dense dead stars??? or strange stars that aren’t even real but a hypothetical concept???? dont lie ik you have!! well now you can!!!!!! in my new game Starborn™ !!! thank me later
Small devlog. Made the banner (YAY) now ill continue making more art tmr goodnight zzzzzzz
Animation is tough but i’m tougher (somebody save me T-T) PS: i threw the customisable player out the window for now, maybe ill add it in future updates when I’m done making the game
Worked on the player’s core movement today! I implemented horizontal movement using Unity’s new input system and handled the actual movement in FixedUpdate() by directly setting the rigidbody2D’s velocity. I also added sprite flipping by changing the player’s x scale based on movement direction. I then implemented jumping with a ground check using an OverlapCircle, so the player can only jump while grounded. Finally, I added variable jump height by cutting the player’s upward velocity when the jump button is released early. This is the first time i’m seriously making a game so this took me embarrassingly long lol but well everyone starts somewhere!
Animations! i added in the idle, walking and jumping animations. Still need to add the dash animation but i plan on doing that after i finish drawing the backgrounds and tiles. Also added variable gravity for jumping and falling, though i might tweak it more since i want the player to feel weightless.
Implemented dashing! The dash is handled as a coroutine, meaning it runs over multiple frames without blocking the rest of the game. When the player presses dash, gravity is temporarily disabled and the player is launched horizontally at a fixed speed in the direction they’re facing. Normal movement is locked out for the duration. After a set time the gravity is restored, and the player has to wait through a cooldown before they can dash again. The dash animation has two parts, one of the player turning into a literal star and the other is the star looping throughout the dash. Took me a long time to implement cuz things kept breaking lol. Also may have spent 2 hours trying to fix an animation error that had nothing to do with the animator but rather the thing that was checking for the ground.. wasnt actually near the ground. Which led to the player never being grounded… and the animations never starting…. oops....
|
1792630487.482069
|
1793235287.482069
|
|
240
|
Frictionless by @Vagabond | Stardance
|
Vagabond
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Frictionless by @Vagabond | Stardance
|
1792698774.4591925
|
1793303574.4591925
|
|
239
|
SaralRates by @Shish | Stardance
|
Shish
|
1
|
9.0
|
150
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-30T18:43:52Z", "hours": 9.0, "multiplier": 16.47, "payout": 150, "blessing": "neutral", "text": "I have previously worked on this project on Flavortown so don’t misunderstand that i made this project in just 9 hours (it actually took 70+ hours in total) In this version, I have migrated database from mongoDB to MariaDB and migrated frontend from React to Next and moved hosting from render, now my Raspberry pi handles the data and cron jobs. I set up a private cloudflare tunnel so that my pi can serve the data securely. There is also a new filter added which allows you to see commodities according to state and their districts. So, the main purpose of this project of mine is to help the farmers so that the middle man can’t exploit them. For now, very less people including some of family members who are into vegetable/fruit business use it :( I hope you guys like it. So much effort has been put into this project and I will keep working on it as I keep learning new new things. While updating this project, I learnt a lot about backend like tunnels. I also learnt more about NextJS and MySQL, like making tables and makking joins between different tables. Hardest thing was the backend as I wasn’t able to visualise properly what is happening so I had to take help of AI.", "repo": "https://github.com/C0nfu5ing-5pring/SaralRates", "demo": "https://saral-rates.vercel.app"}]...
|
[{"post_id": 37791, "ts": "202 [{"post_id": 37791, "ts": "2026-07-30T18:41:01Z", "hours": 0.4969, "text": "v(1.0.0) Completed! Updates I have decided to complete the project and focus on other projects for now. This project was very fun to work with! in these 25 mins, I wrote the README.md file, changed the version across the site and did pretty much small tasks that do not affect the functionality of the website! Changed the filter button style"}, {"post_id": 37577, "ts": "2026-07-30T12:25:16Z", "hours": 1.3339, "text": "v(0.8.2-Beta) Adding new features Updates Disconnected from render now render doesn’t feed data to my website. fixed a broken image logic on LaunchModal.jsx Removed dead code (from previous version) Added new feature of filtering by states and districts databse has around 14k commodities (last 31 days) but website shows only last 7 days. (in future, I will add trends of larger window) card share feature is glitched (again) so tried to work on it but couldn’t fix it properly. (thinking of removing it completely)"}, {"post_id": 37080, "ts": "2026-07-29T15:42:38Z", "hours": 2.3478, "text": "v(0.8.1) Migration Updates first of all, I was REALLY busy with my school so couldn’t code much. So, I started working on this project since a couple of days. So, we have successfully migrated and now my Raspberry Pi has the data and all made a private cloudflare tunnel so that I don’t expose my Pi. THANKS CLOUDFLARE! also installed pm2 on rpi so that backend can run continuously Had problems while migrating (that’s why you can see multiple similar commits) All this was obviously very new for me so I took help of AI for creating the cloudflare part As of today, we only have 246 commodities :( What next? I’ll be working on enhancing the cron job"}, {"post_id": 12315, "ts": "2026-06-20T03:06:38Z", "hours": 3.0953, "text": "v(0.8.1-beta) Migration Updates Read and accessed data from the rpi. So, my thinking here is that, I would have my rpi fetch all the data everyday and store it in mysql (which is on rpi). THEN, I will read and access that data and give it to the frontend and display it! (i dokn’t know if it is going to work or not BUT so far, I am able to read and access the data) Deleted mongoose and installed mysql to the project I have been working on dummy data so I don’t know if it is fully functional or not. What next? I will be setting up a job for rpi to fetch data from govt. api every day. Change log 9fae860: read and access data from rpi 5b95a47feat: daily fetch 8dcef72docs: add dummy data aefed79docs: delete mongodb files 41f198ddocs: uninstall mongoose and install mysql 6eeda2edocs: update README 1539c69feat(api): daily fetch"}, {"post_id": 4068, "ts": "2026-06-07T08:10:57Z", "hours": 1.9408, "text": "v(0.8.0-beta) Migration Updates Migrated from ReactJS to NextJS (For better SEO) Tackled some bugs while doing so Made sure everything still works As of today we have data of 33k commoditeis!!! What next? Now I will be doing a tedious job of adding ‘alt’ to all the images and look for more ways to do better SEO Then I need to migrate from MongoDB to MySQL and i’ll be storing all the data of commodities on my Raspberry Pi 5. I chose MySQL because if I use it, it might also help me in my school examinations i.e I’ll get my hand on SQL properly :) I also have tons of new ideas that I can implement using MySQL but i’ll keep them for upcoming devlogs Changelog feat(api): daily fetch chore: add backups and make next app chose: migrate code from react to next fix(api): allow all cors address fix(feat): fix theme toggle and notifications chore: remove migration backups"}]...
|
Title: SaralRates by @Shish | Stardance
Devlogs:
Title: SaralRates by @Shish | Stardance
Devlogs:
v(0.8.0-beta) Migration Updates Migrated from ReactJS to NextJS (For better SEO) Tackled some bugs while doing so Made sure everything still works As of today we have data of 33k commoditeis!!! What next? Now I will be doing a tedious job of adding ‘alt’ to all the images and look for more ways to do better SEO Then I need to migrate from MongoDB to MySQL and i’ll be storing all the data of commodities on my Raspberry Pi 5. I chose MySQL because if I use it, it might also help me in my school examinations i.e I’ll get my hand on SQL properly :) I also have tons of new ideas that I can implement using MySQL but i’ll keep them for upcoming devlogs Changelog feat(api): daily fetch chore: add backups and make next app chose: migrate code from react to next fix(api): allow all cors address fix(feat): fix theme toggle and notifications chore: remove migration backups
v(0.8.1-beta) Migration Updates Read and accessed data from the rpi. So, my thinking here is that, I would have my rpi fetch all the data everyday and store it in mysql (which is on rpi). THEN, I will read and access that data and give it to the frontend and display it! (i dokn’t know if it is going to work or not BUT so far, I am able to read and access the data) Deleted mongoose and installed mysql to the project I have been working on dummy data so I don’t know if it is fully functional or not. What next? I will be setting up a job for rpi to fetch data from govt. api every day. Change log 9fae860: read and access data from rpi 5b95a47feat: daily fetch 8dcef72docs: add dummy data aefed79docs: delete mongodb files 41f198ddocs: uninstall mongoose and install mysql 6eeda2edocs: update README 1539c69feat(api): daily fetch
v(0.8.1) Migration Updates first of all, I was REALLY busy with my school so couldn’t code much. So, I started working on this project since a couple of days. So, we have successfully migrated and now my Raspberry Pi has the data and all made a private cloudflare tunnel so that I don’t expose my Pi. THANKS CLOUDFLARE! also installed pm2 on rpi so that backend can run continuously Had problems while migrating (that’s why you can see multiple similar commits) All this was obviously very new for me so I took help of AI for creating the cloudflare part As of today, we only have 246 commodities :( What next? I’ll be working on enhancing the cron job
v(0.8.2-Beta) Adding new features Updates Disconnected from render now render doesn’t feed data to my website. fixed a broken image logic on LaunchModal.jsx Removed dead code (from previous version) Added new feature of filtering by states and districts databse has around 14k commodities (last 31 days) but website shows only last 7 days. (in future, I will add trends of larger window) card share feature is glitched (again) so tried to work on it but couldn’t fix it properly. (thinking of removing it completely)
v(1.0.0) Completed! Updates I have decided to complete the project and focus on other projects for now. This project was very fun to work with! in these 25 mins, I wrote the README.md file, changed the version across the site and did pretty much small tasks that do not affect the functionality of the website! Changed the filter button style
Ships:
I have previously worked on this project on Flavortown so don’t misunderstand that i made this project in just 9 hours (it actually took 70+ hours in total) In this version, I have migrated database from mongoDB to MariaDB and migrated frontend from React to Next and moved hosting from render, now my Raspberry pi handles the data and cron jobs. I set up a private cloudflare tunnel so that my pi can serve the data securely. There is also a new filter added which allows you to see commodities according to state and their districts. So, the main purpose of this project of mine is to help the farmers so that the middle man can’t exploit them. For now, very less people including some of family members who are into vegetable/fruit business use it :( I hope you guys like it. So much effort has been put into this project and I will keep working on it as I keep learning new new things. While updating this project, I learnt a lot about backend like tunnels. I also learnt more about NextJS and MySQL, like making tables and makking joins between different tables. Hardest thing was the backend as I wasn’t able to visualise properly what is happening so I had to take help of AI....
|
1792983322.5359488
|
1793069722.5359488
|
|
238
|
meow by @junya | Stardance
|
junya
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: meow by @junya | Stardance
|
1792507786.373354
|
1793112586.373354
|
|
237
|
Untitled by @imu | Stardance
|
imu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @imu | Stardance
|
1792910889.8977845
|
1793774889.8977845
|