|
52984
|
Mats.Overmans.NL by @Mats | Stardance
|
Mats
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T17:54:55Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a personal site that tells the visitor a bit about me. Im hoping to ship more code to expand the projects section, and I’ll probably have to write an essay soon, but for now I have holiday =D. The site is mainly in Dutch, but you can switch using the link on the tab. (Im missing 1m for the last devlog =((( )", "repo": "https://github.com/MatsDevOfficial/Personal_Website", "demo": "https://matsdevofficial.github.io/Personal_Website/"}]...
|
[{"post_id": 53239, "ts": "202 [{"post_id": 53239, "ts": "2026-08-23T17:58:31Z", "hours": 0.55, "text": "Well, yesterday I started with some about me stuff, and today I finished the css, including bg, outline, fonts. Tomorrow Im going to add pictures and fix the big gaps."}]...
|
Title: Mats.Overmans.NL by @Mats | Stardance
Devl Title: Mats.Overmans.NL by @Mats | Stardance
Devlogs:
Well, yesterday I started with some about me stuff, and today I finished the css, including bg, outline, fonts. Tomorrow Im going to add pictures and fix the big gaps.
Ships:
I made a personal site that tells the visitor a bit about me. Im hoping to ship more code to expand the projects section, and I’ll probably have to write an essay soon, but for now I have holiday =D. The site is mainly in Dutch, but you can switch using the link on the tab. (Im missing 1m for the last devlog =((( )...
|
1793523176.2368138
|
1793609576.2368138
|
|
42540
|
PBM (Plasma Backup Manager) by @TomTTFB | Stardanc PBM (Plasma Backup Manager) by @TomTTFB | Stardance...
|
TomTTFB
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T17:45:23Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "PBM is a bash script for backing up and restoring your entire KDE Plasma desktop config including panel layouts, shortcuts, themes, window rules, GTK settings. It also has named snapshots, category-based partial restores, a diff viewer, tarball export and import, and a CLI mode alongside the interactive menu.", "repo": "https://github.com/tomTTFB/pbm", "demo": "https://github.com/tomTTFB/pbm/releases/tag/v1.0.0"}]...
|
[{"post_id": 53946, "ts": "202 [{"post_id": 53946, "ts": "2026-08-24T17:29:05Z", "hours": 3.8053, "text": "Devlog #2 I added the last few features this session. you can Export and import as a tarball so you can move backups between machines or store them on a NAS, a diff view that compares any saved backup against your current config and tells you exactly which files have changed, and category-based partial restores (like appearance, panels, shortcuts, windows, and apps.) so you can pull back just your panel layout or just your shortcuts without touching anything else. The CLI mode is also fully working so you can run pbm backup [name] or pbm restore [name] without going through the UI. it also makes a pre-restore snapshot so if something goes wrong you have a backup of a backup"}, {"post_id": 52701, "ts": "2026-08-23T00:02:53Z", "hours": 1.4536, "text": "Devlog #1 I made a bash script for backup and restore KDE Plasma configs. It has one command to snapshot all your Plasma files and one to roll back to the latest. This will be super helpful for when i was to play around with my desktop layouts and stuff without breaking anything permanently"}]...
|
Title: PBM (Plasma Backup Manager) by @TomTTFB | S Title: PBM (Plasma Backup Manager) by @TomTTFB | Stardance
Devlogs:
Devlog #1 I made a bash script for backup and restore KDE Plasma configs. It has one command to snapshot all your Plasma files and one to roll back to the latest. This will be super helpful for when i was to play around with my desktop layouts and stuff without breaking anything permanently
Devlog #2 I added the last few features this session. you can Export and import as a tarball so you can move backups between machines or store them on a NAS, a diff view that compares any saved backup against your current config and tells you exactly which files have changed, and category-based partial restores (like appearance, panels, shortcuts, windows, and apps.) so you can pull back just your panel layout or just your shortcuts without touching anything else. The CLI mode is also fully working so you can run pbm backup [name] or pbm restore [name] without going through the UI. it also makes a pre-restore snapshot so if something goes wrong you have a backup of a backup
Ships:
PBM is a bash script for backing up and restoring your entire KDE Plasma desktop config including panel layouts, shortcuts, themes, window rules, GTK settings. It also has named snapshots, category-based partial restores, a diff viewer, tarball export and import, and a CLI mode alongside the interactive menu....
|
1792878707.6269753
|
1793742707.6269753
|
|
52697
|
mywebsite by @Jeshu | Stardance
|
Jeshu
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T17:08:18Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my own portfolio for the Stardance event and I used basic vanilla JavaScript, CSS, and HTML for this", "repo": "https://github.com/jeshu-collab/mywebsite", "demo": "https://mywebsite-tawny-alpha.vercel.app/"}]...
|
[{"post_id": 53922, "ts": "202 [{"post_id": 53922, "ts": "2026-08-24T17:00:34Z", "hours": 0.2533, "text": "devlog — cleaned up the site today removed three.js and replaced it with a lightweight pure css dot-grid. warmed up the whole color palette and gave it more of an aged parchment feel. fixed the landing page alignment by switching to a strict css grid and keeping everything dead-center. added ibm plex mono locally, so there are no external font requests anymore. added my hardware + software toolkit to the about page. added a vanilla javascript observer for smooth fade-ins when elements enter the viewport. overall, the build feels way lighter, faster, and cleaner now. and yeah, the alignment is finally actually right."}, {"post_id": 52225, "ts": "2026-08-22T10:10:56Z", "hours": 2.5078, "text": "I built a minimalist portfolio from the ground up, focusing entirely on strict layout control and a raw “hacker-document” aesthetic. I originally had a 3D particle system running in the background, but I ended up removing Three.js completely and replaced it with a much lighter, pure CSS dot-grid that uses a custom mouse-tracking spotlight mask to keep the load times near zero.The core of the build involved creating a precise CSS state-machine for a sticky-scroll landing sequence and using CSS Grid to achieve pixel-perfect absolute centering across the viewport. For typography, I used Google Fonts with IBM Plex Mono instead of adding the font directly into the stylesheet. Everything is tied together with a warm, vintage parchment color palette, strict flex-aligned project cards, and smooth hover-state GitHub reveals.It’s completely self-contained, lightweight, lightning fast, and matches exactly the aesthetic I was going for."}]...
|
Title: mywebsite by @Jeshu | Stardance
Devlogs:
I Title: mywebsite by @Jeshu | Stardance
Devlogs:
I built a minimalist portfolio from the ground up, focusing entirely on strict layout control and a raw “hacker-document” aesthetic. I originally had a 3D particle system running in the background, but I ended up removing Three.js completely and replaced it with a much lighter, pure CSS dot-grid that uses a custom mouse-tracking spotlight mask to keep the load times near zero.The core of the build involved creating a precise CSS state-machine for a sticky-scroll landing sequence and using CSS Grid to achieve pixel-perfect absolute centering across the viewport. For typography, I used Google Fonts with IBM Plex Mono instead of adding the font directly into the stylesheet. Everything is tied together with a warm, vintage parchment color palette, strict flex-aligned project cards, and smooth hover-state GitHub reveals.It’s completely self-contained, lightweight, lightning fast, and matches exactly the aesthetic I was going for.
devlog — cleaned up the site today removed three.js and replaced it with a lightweight pure css dot-grid. warmed up the whole color palette and gave it more of an aged parchment feel. fixed the landing page alignment by switching to a strict css grid and keeping everything dead-center. added ibm plex mono locally, so there are no external font requests anymore. added my hardware + software toolkit to the about page. added a vanilla javascript observer for smooth fade-ins when elements enter the viewport. overall, the build feels way lighter, faster, and cleaner now. and yeah, the alignment is finally actually right.
Ships:
I made my own portfolio for the Stardance event and I used basic vanilla JavaScript, CSS, and HTML for this...
|
1793494141.7886531
|
1793580541.7886531
|
|
46689
|
donOS X by @boredon | Stardance
|
boredon
|
1
|
26.0
|
389
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T17:02:11Z", "hours": 26.0, "multiplier": 12.71, "payout": 389, "blessing": "neutral", "text": "What did you make? I made a web-based operating system inspired by y2k aesthetics and webcore, with a design language created to be unique. What was challenging? The bit that took the longest was actually nailing the design to go forward with, but that was just one of many struggles. Getting the screen to fit perfectly inside the CRT monitor, as well as applying the overlay for the 3D effect, forced me to dive deeper into CSS more than I ever have and discover this absolute gem called cqi. This was also my first time ever using JavaScript seriously, so learning how to store things locally, build functions and map those functions to elements was definitely a steep hill to climb, and I wouldn’t say I’ve reached the peak quite yet. However, this projects has taught me a lot about JavaScript syntaxing and best practices, which I plan to implement extensively in future projects. What are you proud of? Honestly? Everything! It was a really daunting task at first, but the hardest part of anything is starting. Once I started, I picked up a momentum that was pretty much impossible to stop, if it weren’t for the time constraints of course (I have school very soon). I’m proud of the JavaScript I’ve learnt, however basic it was, and I’m glad I had the opportunity to dive headfirst into something I’ve never dabbled in before. Any last words, buckaroo? I plan to add a LOT to this project in the near future, and I’m mobilizing as much time as I can to invest in this project. If you have the time, please let me know what else I can implement as you give feedback. …oh…and also… “Tails is the best fictional character in the universe,” I say as they drag me to the padded room…", "repo": "https://github.com/Donald-Mutuku/donOS-X", "demo": "https://donald-mutuku.github.io/donOS-X/"}]...
|
[{"post_id": 53910, "ts": "202 [{"post_id": 53910, "ts": "2026-08-24T16:49:04Z", "hours": 4.5711, "text": "webOS devlog 5 two-in-one?? paint app and start menu! in record time (yes, 4 hours is record time), i managed to create a basic painting app and a start menu! carrying over my knowledge about localStorage to making the save and new functions of Paint really sped things up. that said, setting up the viewport of the canvas so that you could edit a whole screen worth of content was a bit of a headache: i tried setting the paint window to just clip content, but that meant when it was resized from a larger to smaller then larger size again, only the content visible in the smaller size was preserved. so i had to set up a big, invisible viewport and a window so that you can scroll the viewport, and the whole beautiful art you made can be restored. features included in Paint™: draw. can u believe that? can u believe u can draw in a Paint app? change the brush colour (i know, mindblowing) fill the canvas with your choice of colour erase (this took me wayyyy too long to figure out wth) make multiple paintings and save each. that’s right, u can make and save as many incomplete art panels as the average manga artist (no shade). view all of your paintings. each painting is saved like a clickable file on the desktop. that’s so cool, as long as you don’t refresh the page because idk how to write to ur pc storage. sue me. start menu was very easy, probably cuz it’s so basic but i’m not really building it beyond that for now. unfortunately for the 0.5 people that have been following along, this might be my last devlog… before my first ship! i want to account for all the progress i’ve made thus far, so i’ll be shipping the first rendition of donOS X later today for the world to enjoy (or hate on, whichever fits ur personality). thanks for reading! like this devlog. now."}, {"post_id": 53302, "ts": "2026-08-23T19:18:22Z", "hours": 6.7169, "text": "webOS devlog 4 notepad babyyy!! update: you can now try out my website live on my project page! go on, treat yourself… my coding efficiency needs to be studied…. wdym 6 hours for a notepad app… anywayss, i got it done nice and clean, and now i have something actually functional!! and the best part is, i did it 99% without AI!! the all-new Notepad™ features: bold and italic formatting. now your notes look expressive . whoop whoop the ability to save your notes to the desktop! as long as you don’t refresh your tab, your cute little notes stay on the desktop, with your questionably long names dynamically fitting with some fancy flexbox formatting the ability to make NEW notes. that’s right, you can populate this poor desktop with a bajillion notes if you want, as long as bajllion means less than around 20. don’t push it buddy. soon: tails appears if you call out to him 👀👀👀 things i’ll definitely do in the next devlog: manage time properly (yikes) browser. what’s a desktop without a means to doomscroll a game. if i can’t code solitaire, sorry guys, pong is the best i can do ….tails…. ok byebye"}, {"post_id": 52385, "ts": "2026-08-22T14:37:10Z", "hours": 3.4147, "text": "webOS devlog 3 draggable and closable windows!! i need to speed this up wthhh but yeah, u read the title. we now have proper dragging windows. last time, they cursor would fly off screen if u dragged too far (it still kinda does if u shake the windows too much, but no idea how to fix that yet), but now, they, y’know. Drag hmm what else. oh, right. i added desktop icons, so that you can access your favourite time-wasting apps more efficiently close buttons, so that you can kill your favorite time-wasting apps. sidenote on this, this took longest because the guide initially just set it up for one window, so i had to basically learn javascript myself to learn how to apply it to all windows. Hope. Tails!!!! not enough yet tho >:("}, {"post_id": 51876, "ts": "2026-08-21T19:15:02Z", "hours": 3.1472, "text": "webOS devlog 2 welcome screen!!! yippee i managed to make my welcome screen, fitting neatly inside a draggable window template which i’ll apply to other windows in the future. this took way longer than expected again, mostly because the drag function allowed the user to drag beyond the screen boundaries, which i fixed by adding clampPosition function that ensures the window never crosses the screen’s dimensions. i also created custom window buttons and dialog buttons, though none of them are functional just yet. things to do: more Tails. duh. make the window buttons do stuff add desktop icons games?? 👀👀 (foreshadowing x2) see y’all tomorrow. i’m so tired"}, {"post_id": 51534, "ts": "2026-08-21T09:23:55Z", "hours": 7.6553, "text": "webOS devlog 1 seven hours over 3 days for… almost nothing huh 😭😭. i actually spent most of this time trying to decide what design style i’d use. i tried mimicking the Wii U, then the Wii, then the PS VITA, then i read the mission requirements and realized it needs to have draggable windows … sigh…. anyway, i managed to set the base desktop for my OS with a LOT of enhancements, including: a CRT monitor frame, complete with shadows and gradients to create the illusion of 3 dimensions great responsiveness to ensure the monitor maintains its aspect ratio while fitting on practically any screen a custom cursor within the screen to mimic the old windows XP look a desktop wallpaper. it really is cool enough to have its own bullet point problems i faced? oh, boy. first of all, i had no idea how responsiveness actually worked, so i initially set all my units in px and the layout would break horribly on any display other than mine. so i had to learn to use cqi units instead and change EVERY. SINGLE. ONE. then i spent about an hour trying to figure out why everything was still broken and the gradients weren’t working, only to realize i hadn’t linked my .css file in the header. AAAAA what i’m going to add the welcome screen (should’ve been the first thing bruh) draggable windows Tails, because… Tails games? 👀👀 ok see y’all tomorrow (or probably later today yayaya)"}]...
|
Title: donOS X by @boredon | Stardance
Devlogs:
w Title: donOS X by @boredon | Stardance
Devlogs:
webOS devlog 1 seven hours over 3 days for… almost nothing huh 😭😭. i actually spent most of this time trying to decide what design style i’d use. i tried mimicking the Wii U, then the Wii, then the PS VITA, then i read the mission requirements and realized it needs to have draggable windows … sigh…. anyway, i managed to set the base desktop for my OS with a LOT of enhancements, including: a CRT monitor frame, complete with shadows and gradients to create the illusion of 3 dimensions great responsiveness to ensure the monitor maintains its aspect ratio while fitting on practically any screen a custom cursor within the screen to mimic the old windows XP look a desktop wallpaper. it really is cool enough to have its own bullet point problems i faced? oh, boy. first of all, i had no idea how responsiveness actually worked, so i initially set all my units in px and the layout would break horribly on any display other than mine. so i had to learn to use cqi units instead and change EVERY. SINGLE. ONE. then i spent about an hour trying to figure out why everything was still broken and the gradients weren’t working, only to realize i hadn’t linked my .css file in the header. AAAAA what i’m going to add the welcome screen (should’ve been the first thing bruh) draggable windows Tails, because… Tails games? 👀👀 ok see y’all tomorrow (or probably later today yayaya)
webOS devlog 2 welcome screen!!! yippee i managed to make my welcome screen, fitting neatly inside a draggable window template which i’ll apply to other windows in the future. this took way longer than expected again, mostly because the drag function allowed the user to drag beyond the screen boundaries, which i fixed by adding clampPosition function that ensures the window never crosses the screen’s dimensions. i also created custom window buttons and dialog buttons, though none of them are functional just yet. things to do: more Tails. duh. make the window buttons do stuff add desktop icons games?? 👀👀 (foreshadowing x2) see y’all tomorrow. i’m so tired
webOS devlog 3 draggable and closable windows!! i need to speed this up wthhh but yeah, u read the title. we now have proper dragging windows. last time, they cursor would fly off screen if u dragged too far (it still kinda does if u shake the windows too much, but no idea how to fix that yet), but now, they, y’know. Drag hmm what else. oh, right. i added desktop icons, so that you can access your favourite time-wasting apps more efficiently close buttons, so that you can kill your favorite time-wasting apps. sidenote on this, this took longest because the guide initially just set it up for one window, so i had to basically learn javascript myself to learn how to apply it to all windows. Hope. Tails!!!! not enough yet tho >:(
webOS devlog 4 notepad babyyy!! update: you can now try out my website live on my project page! go on, treat yourself… my coding efficiency needs to be studied…. wdym 6 hours for a notepad app… anywayss, i got it done nice and clean, and now i have something actually functional!! and the best part is, i did it 99% without AI!! the all-new Notepad™ features: bold and italic formatting. now your notes look expressive . whoop whoop the ability to save your notes to the desktop! as long as you don’t refresh your tab, your cute little notes stay on the desktop, with your questionably long names dynamically fitting with some fancy flexbox formatting the ability to make NEW notes. that’s right, you can populate this poor desktop with a bajillion notes if you want, as long as bajllion means less than around 20. don’t push it buddy. soon: tails appears if you call out to him 👀👀👀 things i’ll definitely do in the next devlog: manage time properly (yikes) browser. what’s a desktop without a means to doomscroll a game. if i can’t code solitaire, sorry guys, pong is the best i can do ….tails…. ok byebye
webOS devlog 5 two-in-one?? paint app and start menu! in record time (yes, 4 hours is record time), i managed to create a basic painting app and a start menu! carrying over my knowledge about localStorage to making the save and new functions of Paint really sped things up. that said, setting up the viewport of the canvas so that you could edit a whole screen worth of content was a bit of a headache: i tried setting the paint window to just clip content, but that meant when it was resized from a larger to smaller then larger size again, only the content visible in the smaller size was preserved. so i had to set up a big, invisible viewport and a window so that you can scroll the viewport, and the whole beautiful art you made can be restored. features included in Paint™: draw. can u believe that? can u believe u can draw in a Paint app? change the brush colour (i know, mindblowing) fill the canvas with your choice of colour erase (this took me wayyyy too long to figure out wth) make multiple paintings and save each. that’s right, u can make and save as many incomplete art panels as the average manga artist (no shade). view all of your paintings. each painting is saved like a clickable file on the desktop. that’s so cool, as long as you don’t refresh the page because idk how to write to ur pc storage. sue me. start menu was very easy, probably cuz it’s so basic but i’m not really building it beyond that for now. unfortunately for the 0.5 people that have been following along, this might be my last devlog… before my first ship! i want to account for all the progress i’ve made thus far, so i’ll be shipping the first rendition of donOS X later today for the world to enjoy (or hate on, whichever fits ur personality). thanks for reading! like this devlog. now.
Ships:
What did you make? I made a web-based operating system inspired by y2k aesthetics and webcore, with a design language created to be unique. What was challenging? The bit that took the longest was actually nailing the design to go forward with, but that was just one of many struggles. Getting the screen to fit perfectly inside the CRT monitor, as well as applying the overlay for the 3D effect, forced me to dive deeper into CSS more than I ever have and discover this absolute gem called cqi. This was also my first time ever using JavaScript seriously, so learning how to store things locally, build functions and map those functions to elements was definitely a steep hill to climb, and I wouldn’t say I’ve reached the peak quite yet. However, this projects has taught me a lot about JavaScript syntaxing and best practices, which I plan to implement extensively in future projects. What are you proud of? Honestly? Everything! It was a really daunting task at first, but the hardest part of anything is starting. Once I started, I picked up a momentum that was pretty much impossible to stop, if it weren’t for the time constraints of course (I have school very soon). I’m proud of the JavaScript I’ve learnt, however basic it was, and I’m glad I had the opportunity to dive headfirst into something I’ve never dabbled in before. Any last words, buckaroo? I plan to add a LOT to this project in the near future, and I’m mobilizing as much time as I can to invest in this project. If you have the time, please let me know what else I can implement as you give feedback. …oh…and also… “Tails is the best fictional character in the universe,” I say as they drag me to the padded room…...
|
1793486906.8290012
|
1793573306.8290012
|
|
51763
|
heith.me by @aamosm | Stardance
|
aamosm
|
1
|
13.41
|
167
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T16:49:30Z", "hours": 13.0, "multiplier": 10.33, "payout": 167, "blessing": "neutral", "text": "heith.me - shipping This site started from a pretty simple motivation: I wanted the portfolio itself to be part of the work, not just a page containing it. I wanted to see how far I could push a plain HTML, CSS and JavaScript site without a framework or build system, while still making it work properly across different devices. The visual direction came from a lot of different sites and ideas I liked, but the final site ended up being its own thing. The site tries to break all molds while being simple as well, If not a portfolio it serves as a learning experience. So yeah, it’s done. heith.me", "repo": "https://github.com/aamosm/heith.me", "demo": "https://aamosm.github.io/heith.me/"}]...
|
[{"post_id": 56689, "ts": "202 [{"post_id": 56689, "ts": "2026-08-28T15:29:49Z", "hours": 0.4139, "text": "guys. just to remind you before you rate this work. the best experience of the site is ona good pc with hardware acceleration *on in your browser. for mobile and lower end computers it is very basic. it will give out the same info but the design is very basic. and the design is the main thing abt it. it is very basic on phones etc. as seen below. ofc the effort has still been put in to make it look good with a video and other features."}, {"post_id": 53834, "ts": "2026-08-24T15:07:46Z", "hours": 6.2108, "text": "devlog 03 - i think we’re done I think heith.me is done. Everything I wanted to implement is in now. The full site, the effects, the different device cases, the lite mode, the mobile mode, the interactions, the performance fallbacks, all of it. I’ve also finished the design process stuff I wanted to document, so the site isn’t just showing the final result. There is actually an explanation behind why I chose certain colours, fonts, layouts and effects. I wanted to build the whole thing as one process instead of constantly adding random features forever. So I’m stopping here. I don’t really plan on committing changes later down the line unless something is actually broken or I absolutely need to change something. I wanted this to be a finished piece, not another project that keeps getting new features until the original idea is gone. The only thing left is getting the domain. I’m waiting for the website domain grant to go through so I can finally buy the domain I designed this site around. So yeah. here guys. https://aamosm.github.io/heith.me/ ..the attached image is the portfolio page. also a note i wanted to add.. : this website has taken much longer than what is timed. the actual pen paper designs. getting together failed projects in other folders. designing in figma etc. was not tracked. This happens a lot with the projects i do in missions but somehow it affected a chunk of this one too. also i just realised this project has been listed as hardware???? its software. and i cant change it now. ill have to get help from support"}, {"post_id": 52258, "ts": "2026-08-22T11:15:17Z", "hours": 2.2228, "text": "devlog 02 - making the site work everywhere The site has changed quite a bit since the first version. the new look I’ve changed a lot of the actual interface and started pushing the visual direction much further. I also added the custom cursor from xenobiota . I really liked how something that small could change the whole feel of the site, so I wanted to try it here too. I’ve also been taking a lot of inspiration from Awwwards sites. One thing I’ve noticed is that the best sites aren’t just crazy because they have crazy effects. The really good ones make those effects work properly across devices. That became a pretty big focus for me. performance I added separate cases for different hardware. If a device has hardware acceleration, it can use the full experience. If it doesn’t, the site falls back to a lighter version so the effects don’t completely destroy performance. There’s also a separate lite mode and a mobile mode . I don’t want the site to only look good on the machine I built it on. small things I’ve also been making the interactions a bit more obvious, especially around muting and unmuting. There are still a lot of little things like this that I’m catching as I actually use the site instead of just looking at it. documenting the process I’m also working on something I want to add directly to the site: a breakdown of the design process. I want to explain why certain colours, fonts, layouts and effects were chosen instead of just putting the finished site in front of someone and leaving them to guess. The site is the portfolio piece, but the process behind making it should be part of it too."}, {"post_id": 50811, "ts": "2026-08-20T07:14:09Z", "hours": 5.0589, "text": "devlog 01 - starting the site I went into this with a pretty clear idea of what I wanted, I just didn’t expect the actual design to stay the same. The main references were: xenobiota rithunyaa acid crunch artem galekto I liked how all of them had their own identity instead of looking like a normal portfolio template. That was the main thing I wanted here too. Visually I was going for a Wes Anderson-ish kind of thing. Not copying it, more the controlled layouts, odd colour combinations and slightly theatrical feeling. The idea behind heith.me is also kinda recursive. The site itself is one of my portfolio pieces , and I’m going to be breaking it down in my portfolio too. landing I knew I wanted the opening to feel more like entering something than just seeing a hero section. I went through multiple versions of the opening before landing on the torn-paper idea. The paper tear gave me a way to make the video feel like it was underneath the page instead of just sitting in a box. I changed the tear quite a few times too, especially the shape and colours. The video is an old render of mine , and one of my first animation attempts. I didn’t really want to make a completely new video just for the site, so I reused it and messed with the presentation instead. I chopped it up, added the scanline treatment and made it more chaotic. It felt way more fitting than just putting the original render there normally. I also originally had the text arranged diagonally. It looked cool, but once everything was actually on the page it started fighting with the person in the centre, so I straightened it out. A lot of the site has basically been this. I have an idea, build it, realise it doesn’t fit as well as I thought, change it. The colours went through a lot of versions too. I have not even made a proper repo for this on github. or hosted it yet. The plan is to get the website to how i want it to look and finish it off in one commit. and ofc future changes will be committed, but i want something to show first. The entire thing is just pure html, css, and js. no frameworks."}]...
|
Title: heith.me by @aamosm | Stardance
Devlogs:
d Title: heith.me by @aamosm | Stardance
Devlogs:
devlog 01 - starting the site I went into this with a pretty clear idea of what I wanted, I just didn’t expect the actual design to stay the same. The main references were: xenobiota rithunyaa acid crunch artem galekto I liked how all of them had their own identity instead of looking like a normal portfolio template. That was the main thing I wanted here too. Visually I was going for a Wes Anderson-ish kind of thing. Not copying it, more the controlled layouts, odd colour combinations and slightly theatrical feeling. The idea behind heith.me is also kinda recursive. The site itself is one of my portfolio pieces , and I’m going to be breaking it down in my portfolio too. landing I knew I wanted the opening to feel more like entering something than just seeing a hero section. I went through multiple versions of the opening before landing on the torn-paper idea. The paper tear gave me a way to make the video feel like it was underneath the page instead of just sitting in a box. I changed the tear quite a few times too, especially the shape and colours. The video is an old render of mine , and one of my first animation attempts. I didn’t really want to make a completely new video just for the site, so I reused it and messed with the presentation instead. I chopped it up, added the scanline treatment and made it more chaotic. It felt way more fitting than just putting the original render there normally. I also originally had the text arranged diagonally. It looked cool, but once everything was actually on the page it started fighting with the person in the centre, so I straightened it out. A lot of the site has basically been this. I have an idea, build it, realise it doesn’t fit as well as I thought, change it. The colours went through a lot of versions too. I have not even made a proper repo for this on github. or hosted it yet. The plan is to get the website to how i want it to look and finish it off in one commit. and ofc future changes will be committed, but i want something to show first. The entire thing is just pure html, css, and js. no frameworks.
devlog 02 - making the site work everywhere The site has changed quite a bit since the first version. the new look I’ve changed a lot of the actual interface and started pushing the visual direction much further. I also added the custom cursor from xenobiota . I really liked how something that small could change the whole feel of the site, so I wanted to try it here too. I’ve also been taking a lot of inspiration from Awwwards sites. One thing I’ve noticed is that the best sites aren’t just crazy because they have crazy effects. The really good ones make those effects work properly across devices. That became a pretty big focus for me. performance I added separate cases for different hardware. If a device has hardware acceleration, it can use the full experience. If it doesn’t, the site falls back to a lighter version so the effects don’t completely destroy performance. There’s also a separate lite mode and a mobile mode . I don’t want the site to only look good on the machine I built it on. small things I’ve also been making the interactions a bit more obvious, especially around muting and unmuting. There are still a lot of little things like this that I’m catching as I actually use the site instead of just looking at it. documenting the process I’m also working on something I want to add directly to the site: a breakdown of the design process. I want to explain why certain colours, fonts, layouts and effects were chosen instead of just putting the finished site in front of someone and leaving them to guess. The site is the portfolio piece, but the process behind making it should be part of it too.
devlog 03 - i think we’re done I think heith.me is done. Everything I wanted to implement is in now. The full site, the effects, the different device cases, the lite mode, the mobile mode, the interactions, the performance fallbacks, all of it. I’ve also finished the design process stuff I wanted to document, so the site isn’t just showing the final result. There is actually an explanation behind why I chose certain colours, fonts, layouts and effects. I wanted to build the whole thing as one process instead of constantly adding random features forever. So I’m stopping here. I don’t really plan on committing changes later down the line unless something is actually broken or I absolutely need to change something. I wanted this to be a finished piece, not another project that keeps getting new features until the original idea is gone. The only thing left is getting the domain. I’m waiting for the website domain grant to go through so I can finally buy the domain I designed this site around. So yeah. here guys. https://aamosm.github.io/heith.me/ ..the attached image is the portfolio page. also a note i wanted to add.. : this website has taken much longer than what is timed. the actual pen paper designs. getting together failed projects in other folders. designing in figma etc. was not tracked. This happens a lot with the projects i do in missions but somehow it affected a chunk of this one too. also i just realised this project has been listed as hardware???? its software. and i cant change it now. ill have to get help from support
guys. just to remind you before you rate this work. the best experience of the site is ona good pc with hardware acceleration *on in your browser. for mobile and lower end computers it is very basic. it will give out the same info but the design is very basic. and the design is the main thing abt it. it is very basic on phones etc. as seen below. ofc the effort has still been put in to make it look good with a video and other features.
Ships:
heith.me - shipping This site started from a pretty simple motivation: I wanted the portfolio itself to be part of the work, not just a page containing it. I wanted to see how far I could push a plain HTML, CSS and JavaScript site without a framework or build system, while still making it work properly across different devices. The visual direction came from a lot of different sites and ideas I liked, but the final site ended up being its own thing. The site tries to break all molds while being simple as well, If not a portfolio it serves as a learning experience. So yeah, it’s done. heith.me...
|
1793533743.6823103
|
1793620143.6823103
|
|
18092
|
Sumi The AI Powerd Open Sourced Slack Channel Summ Sumi The AI Powerd Open Sourced Slack Channel Summarizer by @Magic_X | Stardance...
|
Magic_X
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T16:38:00Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Slack bot that can filter,summarize,and chat with you about certain topics in a channel The most difficult part i think i faced was uploading the code to github using git.", "repo": "https://github.com/Magic-XY/Sumi", "demo": "https://hackclub.enterprise.slack.com/archives/C0BSFKXMZCN"}]...
|
[{"post_id": 8702, "ts": "2026 [{"post_id": 8702, "ts": "2026-06-14T13:38:53Z", "hours": 0.67, "text": "I just finished the filter command for Sumi so it can now filter messages within a given channel based on a topic or category"}, {"post_id": 8399, "ts": "2026-06-13T23:31:17Z", "hours": 1.1981, "text": "Sumi is looking good I just finished the summarize Cmd command so it actually summarizes channels now"}, {"post_id": 8309, "ts": "2026-06-13T20:26:58Z", "hours": 1.2719, "text": "I am working on Sumi a Mistral AI Powered slack bot that will be able to summarize channels and messages it will also be able to provide help with various tasks Today I finished writing most of the code, implementing the AI api and debugging it"}]...
|
Title: Sumi The AI Powerd Open Sourced Slack Chann Title: Sumi The AI Powerd Open Sourced Slack Channel Summarizer by @Magic_X | Stardance
Devlogs:
I am working on Sumi a Mistral AI Powered slack bot that will be able to summarize channels and messages it will also be able to provide help with various tasks Today I finished writing most of the code, implementing the AI api and debugging it
Sumi is looking good I just finished the summarize Cmd command so it actually summarizes channels now
I just finished the filter command for Sumi so it can now filter messages within a given channel based on a topic or category
Ships:
I made a Slack bot that can filter,summarize,and chat with you about certain topics in a channel The most difficult part i think i faced was uploading the code to github using git....
|
1793544468.4694197
|
1793630868.4694197
|
|
52861
|
Smile Bot v1 by @PrakstheBruce | Stardance
|
PrakstheBruce
|
1
|
2.37
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T16:24:03Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built Smile Bot, a Slack bot that provides quick, friendly interactions through Slack commands. It is deployed 24/7 on Hack Club Nest using Node.js and systemd! 😄The mooost challenging part was deploying the bot to Nest and configuring systemd to keep it running 24/7. I also had to troubleshoot environment variables, dependencies, and deployment configuration multiple times!! I’m proud that I took Smile Bot from an idea to a fully working, publicly documented, 24/7 deployed project. “I especially enjoyed learning how to run and maintain a real server-side application.” HEre are the Stuff that people know so they can use my project…. Smile Bot is designed to run inside Slack. Users need to install/configure the Slack app and provide the required bot and app tokens through environment variables. The GitHub README contains the setup instructions and available commands.", "repo": "https://github.com/praksthebruce/Smile-Bot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0BS923UMSA?skip_today=1"}]...
|
[{"post_id": 54439, "ts": "202 [{"post_id": 54439, "ts": "2026-08-25T13:35:45Z", "hours": 0.3694, "text": "🛠️ Smile Bot — Fixing the Broken Compliment Feature Heyyyy! After shipping Smile Bot I noticed something embarrassing. 😂 The /smile-bot-compliment command wasn’t actually working….. Instead of returning a compliment, it kept responding: “Couldn’t find a compliment right now.” Soo.. What was happening? The command depended on an external API: The API was throwing an error, which meant my bot’s fallback response was triggered every time. The fix: I realized I didn’t need an external API for something as simple as generating compliments. Therefore, I replaced the API call with a local collection of compliments and randomly select one whenever the command is used: This means the feature no longer depends on a third-party API being online. 🚀 Deploying the fix The interesting part was that the bot worked locally, but Slack was still showing the old error. Turns out my Nest server was still running the previous version of index.js. I pushed the fix to GitHub, pulled the latest commit onto Nest, restarted the systemd service, and tested it again in Slack. And finally: It worked!!!!!!!!!!!!! 🎉🍀🍀 📚 What I learned This was a small bug, but it taught me an important lesson: “A working local version doesn’t mean your deployed version has the same code.” Debugging isn’t always about finding a complicated programming error it’s also about tracing the entire path: 🗿 Code → Git → Server → Process → User Smile Bot is now a little more reliable than it was when I shipped it. ✨ Another bug squashed and Another lesson learned!!"}, {"post_id": 53878, "ts": "2026-08-24T16:09:45Z", "hours": 0.5106, "text": "The BIIGESST and smallest mistake that I did 🫢🫢😭😭…. Guys, I Finally was Hyped Up that I completed my Slack Bot- Smile-Bot!!! BUT While trying to ship it, The Ship It Button was Greyed Out! I did not know what to do, when two of my bros @mr_kn5196 ❤️❤️ and @fsh 🍀🍀 Helped me out!! I was not a really big bug! I JUST PUT A “.git” EXTENSION IN MY GIT HUB URL!! THAT CAUSED THE ERROR! Hope you guys have a Great week ahead! And I WILL SOON POST UPDATES ON MY NEW “frictionless” project––“CodeAtlas!!”. Peace!!"}, {"post_id": 52834, "ts": "2026-08-23T06:00:05Z", "hours": 0.6078, "text": "Devlog #2 — Another Interesting Problem- After getting the basic Slack commands working, I started preparing the project for deployment. That introduced a completely different side of development that I hadn’t really dealt with before: Git, GitHub, SSH, environment variables, and servers. One of the first things I learned was why .env files shouldn’t be pushed to GitHub. My Slack tokens are required for the bot to work, but they’re also credentials that shouldn’t be sitting inside a public repository. I added .env to .gitignore and learned that deploying an application means recreating those environment variables securely on the server. Git also gave me a few headaches. My local repository and GitHub repository weren’t completely in sync, so my first push was rejected. Instead of forcing the push, I had to understand what Git was actually telling me and pull the remote changes before pushing again. Now I’m moving on to Hack Club Nest. The goal is to get SmileBot running on a real server instead of depending on my laptop and terminal being open. The interesting part of this project so far is that the Slack commands themselves weren’t the hardest part. Getting the entire development workflow around them working has taught me just as much. Next step: SSH into Nest, deploy SmileBot, and get it running 24/7.(P.S I just applied, waiting for approval!!)"}, {"post_id": 52800, "ts": "2026-08-23T04:28:36Z", "hours": 0.4411, "text": "My First and Useful Devlog(It would be helpful for ppl staring out.) Devlog #1 — Setting Up My SlackbotProject: I started setting up my development environment for the Stardance Slackbot challenge.I already had VS Code and Node.js installed, so I expected the setup to be pretty straightforward. I ran: “npm -v” but PowerShell returned an error saying that scripts were disabled on the system. Initially, I thought there was something wrong with my Node.js or npm installation. After looking into it, I realized that npm itself was installed correctly. The issue was that PowerShell’s execution policy was preventing the “npm” PowerShell script from running. Instead of changing a bunch of system settings, I switched the VS Code terminal from PowerShell to Command Prompt and tested it again: “node -v” & “npm -v” Both commands worked!!! I was then able to continue with the project setup: “npm init -y” “npm install @slack /bolt dotenv” What I learned-This was a small issue, but it was a useful reminder that debugging isn’t always about the code itself. Sometimes the problem is with the environment you’re running the code in. The important part was figuring out what was actually failing instead of immediately reinstalling Node.js or changing random settings. Now the development environment is ready, and I can move on to building the actual Slackbot. Next: Create the basic Slackbot and get it responding to messages."}]...
|
Title: Smile Bot v1 by @PrakstheBruce | Stardance
Title: Smile Bot v1 by @PrakstheBruce | Stardance
Devlogs:
My First and Useful Devlog(It would be helpful for ppl staring out.) Devlog #1 — Setting Up My SlackbotProject: I started setting up my development environment for the Stardance Slackbot challenge.I already had VS Code and Node.js installed, so I expected the setup to be pretty straightforward. I ran: “npm -v” but PowerShell returned an error saying that scripts were disabled on the system. Initially, I thought there was something wrong with my Node.js or npm installation. After looking into it, I realized that npm itself was installed correctly. The issue was that PowerShell’s execution policy was preventing the “npm” PowerShell script from running. Instead of changing a bunch of system settings, I switched the VS Code terminal from PowerShell to Command Prompt and tested it again: “node -v” & “npm -v” Both commands worked!!! I was then able to continue with the project setup: “npm init -y” “npm install @slack /bolt dotenv” What I learned-This was a small issue, but it was a useful reminder that debugging isn’t always about the code itself. Sometimes the problem is with the environment you’re running the code in. The important part was figuring out what was actually failing instead of immediately reinstalling Node.js or changing random settings. Now the development environment is ready, and I can move on to building the actual Slackbot. Next: Create the basic Slackbot and get it responding to messages.
Devlog #2 — Another Interesting Problem- After getting the basic Slack commands working, I started preparing the project for deployment. That introduced a completely different side of development that I hadn’t really dealt with before: Git, GitHub, SSH, environment variables, and servers. One of the first things I learned was why .env files shouldn’t be pushed to GitHub. My Slack tokens are required for the bot to work, but they’re also credentials that shouldn’t be sitting inside a public repository. I added .env to .gitignore and learned that deploying an application means recreating those environment variables securely on the server. Git also gave me a few headaches. My local repository and GitHub repository weren’t completely in sync, so my first push was rejected. Instead of forcing the push, I had to understand what Git was actually telling me and pull the remote changes before pushing again. Now I’m moving on to Hack Club Nest. The goal is to get SmileBot running on a real server instead of depending on my laptop and terminal being open. The interesting part of this project so far is that the Slack commands themselves weren’t the hardest part. Getting the entire development workflow around them working has taught me just as much. Next step: SSH into Nest, deploy SmileBot, and get it running 24/7.(P.S I just applied, waiting for approval!!)
The BIIGESST and smallest mistake that I did 🫢🫢😭😭…. Guys, I Finally was Hyped Up that I completed my Slack Bot- Smile-Bot!!! BUT While trying to ship it, The Ship It Button was Greyed Out! I did not know what to do, when two of my bros @mr_kn5196 ❤️❤️ and @fsh 🍀🍀 Helped me out!! I was not a really big bug! I JUST PUT A “.git” EXTENSION IN MY GIT HUB URL!! THAT CAUSED THE ERROR! Hope you guys have a Great week ahead! And I WILL SOON POST UPDATES ON MY NEW “frictionless” project––“CodeAtlas!!”. Peace!!
🛠️ Smile Bot — Fixing the Broken Compliment Feature Heyyyy! After shipping Smile Bot I noticed something embarrassing. 😂 The /smile-bot-compliment command wasn’t actually working….. Instead of returning a compliment, it kept responding: “Couldn’t find a compliment right now.” Soo.. What was happening? The command depended on an external API: The API was throwing an error, which meant my bot’s fallback response was triggered every time. The fix: I realized I didn’t need an external API for something as simple as generating compliments. Therefore, I replaced the API call with a local collection of compliments and randomly select one whenever the command is used: This means the feature no longer depends on a third-party API being online. 🚀 Deploying the fix The interesting part was that the bot worked locally, but Slack was still showing the old error. Turns out my Nest server was still running the previous version of index.js. I pushed the fix to GitHub, pulled the latest commit onto Nest, restarted the systemd service, and tested it again in Slack. And finally: It worked!!!!!!!!!!!!! 🎉🍀🍀 📚 What I learned This was a small bug, but it taught me an important lesson: “A working local version doesn’t mean your deployed version has the same code.” Debugging isn’t always about finding a complicated programming error it’s also about tracing the entire path: 🗿 Code → Git → Server → Process → User Smile Bot is now a little more reliable than it was when I shipped it. ✨ Another bug squashed and Another lesson learned!!
Ships:
I built Smile Bot, a Slack bot that provides quick, friendly interactions through Slack commands. It is deployed 24/7 on Hack Club Nest using Node.js and systemd! 😄The mooost challenging part was deploying the bot to Nest and configuring systemd to keep it running 24/7. I also had to troubleshoot environment variables, dependencies, and deployment configuration multiple times!! I’m proud that I took Smile Bot from an idea to a fully working, publicly documented, 24/7 deployed project. “I especially enjoyed learning how to run and maintain a real server-side application.” HEre are the Stuff that people know so they can use my project…. Smile Bot is designed to run inside Slack. Users need to install/configure the Slack app and provide the required bot and app tokens through environment variables. The GitHub README contains the setup instructions and available commands....
|
1793512295.835746
|
1793598695.835746
|
|
47477
|
smart-cache by @yonatamnyuval1 | Stardance
|
yonatamnyuval1
|
1
|
12.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T16:22:13Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a smart caching library, to use in a larger product I’m developing. Building it was very challenging since I had never really dealt with building cache mechanisms before, and I invested a lot of hours studying beyond just writing code. I think I’m proud that I ended up building it myself instead of using an existing solution just because I was unsure if I could pull it off.", "repo": "https://github.com/yonatamnyuval1-stack/smart-cache", "demo": "https://github.com/yonatamnyuval1-stack/smart-cache/raw/main/releases/smart-cache-demo.exe"}]...
|
[{"post_id": 53880, "ts": "202 [{"post_id": 53880, "ts": "2026-08-24T16:11:30Z", "hours": 1.0517, "text": "Hi! I finished my smart-cache library. I spent the last hour mostly thoroughly reviewing my code and refining small details ahead of a version update on GitHub. The project is officially finalized and ready to ship."}, {"post_id": 50262, "ts": "2026-08-19T12:55:51Z", "hours": 3.0494, "text": "I completed the tests, tested edge cases, and pushed everything to GitHub, so I guess it’s time to ship the project. I’ll check my code one last time and will ship."}, {"post_id": 49490, "ts": "2026-08-18T11:06:38Z", "hours": 7.7294, "text": "I’m working on smart cache library, here my first devlog! I built this library to give myself and other fans of the genre an option to get a smart cache without having to build it themselves."}]...
|
Title: smart-cache by @yonatamnyuval1 | Stardance
Title: smart-cache by @yonatamnyuval1 | Stardance
Devlogs:
I’m working on smart cache library, here my first devlog! I built this library to give myself and other fans of the genre an option to get a smart cache without having to build it themselves.
I completed the tests, tested edge cases, and pushed everything to GitHub, so I guess it’s time to ship the project. I’ll check my code one last time and will ship.
Hi! I finished my smart-cache library. I spent the last hour mostly thoroughly reviewing my code and refining small details ahead of a version update on GitHub. The project is officially finalized and ready to ship.
Ships:
I built a smart caching library, to use in a larger product I’m developing. Building it was very challenging since I had never really dealt with building cache mechanisms before, and I invested a lot of hours studying beyond just writing code. I think I’m proud that I ended up building it myself instead of using an existing solution just because I was unsure if I could pull it off....
|
1793332603.512967
|
1793419003.512967
|
|
53738
|
apex formula 1 by @piyushoutthere | Stardance
|
piyushoutthere
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T16:18:53Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Apex Formula 1, a web project focused on bringing the world of Formula 1 into one interactive website. I wanted to make something that feels fun to explore while also giving users useful F1 information. The challenging part was putting all the different sections and features together and making sure the website worked smoothly and looked consistent. I’m most proud of turning the idea into a complete working website rather than just a basic F1 information page. People testing it should explore the different sections and interact with the features instead of only looking at the homepage. The project is best experienced by actually clicking around and checking out what the website has to offer.", "repo": "https://github.com/piyushoutthere-spec/velocity-realm-nexus", "demo": "https://velocity-realm-nexus.lovable.app"}]...
|
[{"post_id": 53779, "ts": "202 [{"post_id": 53779, "ts": "2026-08-24T14:02:30Z", "hours": 0.3819, "text": "Worked on the core logic and app structure for apex formula 1, resolving environment setup bugs and setting up paths for components."}]...
|
Title: apex formula 1 by @piyushoutthere | Stardan Title: apex formula 1 by @piyushoutthere | Stardance
Devlogs:
Worked on the core logic and app structure for apex formula 1, resolving environment setup bugs and setting up paths for components.
Ships:
I made Apex Formula 1, a web project focused on bringing the world of Formula 1 into one interactive website. I wanted to make something that feels fun to explore while also giving users useful F1 information. The challenging part was putting all the different sections and features together and making sure the website worked smoothly and looked consistent. I’m most proud of turning the idea into a complete working website rather than just a basic F1 information page. People testing it should explore the different sections and interact with the features instead of only looking at the homepage. The project is best experienced by actually clicking around and checking out what the website has to offer....
|
1793469392.375291
|
1793555792.375291
|
|
45083
|
Breakitt by @akshara | Stardance
|
akshara
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T16:15:40Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a dumb site where you just smash plates, cups, etc. I made it with the idea of a stress-relief website in mind. I built it as an experiment to learn about Matter.js — it’s not up to the mark, but I learned a lot while building it. The hardest part was definitely creating the shard shapes, and also lining up the objects to the shelf. The thing I’m most proud of is the sound — it’s completely generated live with the Web Audio API and sounds pretty realistic. To test it, just swipe or drag through any item.", "repo": "https://github.com/akshara200829-lgtm/Breakitt", "demo": "https://akshara200829-lgtm.github.io/Breakitt/"}]...
|
[{"post_id": 53876, "ts": "202 [{"post_id": 53876, "ts": "2026-08-24T16:08:15Z", "hours": 0.4339, "text": "Finally completed building Breakitt!!I made it to learn Matter.js and mess around with physics — it was so much fun to build. It’s not up to the mark, but I learned a lot doing it"}, {"post_id": 43430, "ts": "2026-08-08T17:47:36Z", "hours": 2.7619, "text": "Started building a plate-breaking simulation. This is my first time trying Matter.js, so I’ve been experimenting with physics, collisions, and procedural shattering. Till now , I’ve set up the physics using Matter.js, added a plate that stays in place until it’s hit, responsive canvas resizing, a simple sound using the Web Audio API, and a procedural shatter system that breaks the plate into random shards with physics. I’ve also added screen shake and drag-based interactions to make the impact feel more satisfying. I plan on improving the plate shading and shatter visuals to make the breaking look more realistic, along with adding a few more features. Would love some suggestions or tips!!"}]...
|
Title: Breakitt by @akshara | Stardance
Devlogs:
Title: Breakitt by @akshara | Stardance
Devlogs:
Started building a plate-breaking simulation. This is my first time trying Matter.js, so I’ve been experimenting with physics, collisions, and procedural shattering. Till now , I’ve set up the physics using Matter.js, added a plate that stays in place until it’s hit, responsive canvas resizing, a simple sound using the Web Audio API, and a procedural shatter system that breaks the plate into random shards with physics. I’ve also added screen shake and drag-based interactions to make the impact feel more satisfying. I plan on improving the plate shading and shatter visuals to make the breaking look more realistic, along with adding a few more features. Would love some suggestions or tips!!
Finally completed building Breakitt!!I made it to learn Matter.js and mess around with physics — it was so much fun to build. It’s not up to the mark, but I learned a lot doing it
Ships:
I made a dumb site where you just smash plates, cups, etc. I made it with the idea of a stress-relief website in mind. I built it as an experiment to learn about Matter.js — it’s not up to the mark, but I learned a lot while building it. The hardest part was definitely creating the shard shapes, and also lining up the objects to the shelf. The thing I’m most proud of is the sound — it’s completely generated live with the Web Audio API and sounds pretty realistic. To test it, just swipe or drag through any item....
|
1793519334.0421438
|
1793605734.0421438
|
|
52844
|
3 LED Arduino by @ejr | Stardance
|
ejr
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T16:10:14Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Just another simple enough project, a blinking 3 LED breadboard project. Nothing special and took me 5 minutes to set up and 2 mins to code", "repo": "https://github.com/realejr/3-LED-ARDUINO-BLINKER-CODE", "demo": ""}]...
|
[{"post_id": 52306, "ts": "202 [{"post_id": 52306, "ts": "2026-08-22T12:47:32Z", "hours": 0.35, "text": "Hey guys so I couldn’t figure out how to use lapse so the stuff I recorded is a bit doodoo.😔😔Anyways now that I can post a devlog on this project I can attach some proper pics and I got the kit today btw so I’m a bit new but I’m so glad I have something to push me to code again because I am very rusty."}]...
|
Title: 3 LED Arduino by @ejr | Stardance
Devlogs: Title: 3 LED Arduino by @ejr | Stardance
Devlogs:
Hey guys so I couldn’t figure out how to use lapse so the stuff I recorded is a bit doodoo.😔😔Anyways now that I can post a devlog on this project I can attach some proper pics and I got the kit today btw so I’m a bit new but I’m so glad I have something to push me to code again because I am very rusty.
Ships:
Just another simple enough project, a blinking 3 LED breadboard project. Nothing special and took me 5 minutes to set up and 2 mins to code...
|
1793508457.0214057
|
1793594857.0214057
|
|
53500
|
StudyForge by @ArmanMalik | Stardance
|
ArmanMalik
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T15:59:33Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a project called StudyForge which is supposed to help students and i hope it will help them.", "repo": "", "demo": ""}]...
|
[{"post_id": 53869, "ts": "202 [{"post_id": 53869, "ts": "2026-08-24T15:58:43Z", "hours": 2.0433, "text": "I ran across many errors while making it and it was confusing so i made it as simple as possible, and its something that the students will love to use."}, {"post_id": 53394, "ts": "2026-08-23T22:28:42Z", "hours": 0.9142, "text": "Just finished writing the Flask things and now its time for the part where html will show its magic."}]...
|
Title: StudyForge by @ArmanMalik | Stardance
Devl Title: StudyForge by @ArmanMalik | Stardance
Devlogs:
Just finished writing the Flask things and now its time for the part where html will show its magic.
I ran across many errors while making it and it was confusing so i made it as simple as possible, and its something that the students will love to use.
Ships:
I made a project called StudyForge which is supposed to help students and i hope it will help them....
|
1793437055.3916035
|
1793523455.3916035
|
|
53794
|
POKEDEX [HALF] by @Mokshgna | Stardance
|
Mokshgna
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T15:47:09Z", "hours": 0.0, "multiplier": 1.02, "payout": 0, "blessing": "neutral", "text": "I made a POKEDEX [HALF] from pokemon and it was fun as i did get a few mistakes but rectified it and made it succssful", "repo": "https://github.com/mokshgna13-glitch/POKEDEX-HALF", "demo": "https://mokshgna13-glitch.github.io/POKEDEX-HALF/pokedex.html"}]...
|
[{"post_id": 53845, "ts": "202 [{"post_id": 53845, "ts": "2026-08-24T15:24:37Z", "hours": 0.2472, "text": "HELLO EVERYONE I JUST MADE THIS COOL POKEDEX WHICH WORKS , IT WAS AND IS FUN TO USE AND CODE , WANNA ADD CHANGES OR MAKE IT YOUR OWN JUST GO AND DOWNLOAD IT FROM BY GITHUB"}]...
|
Title: POKEDEX [HALF] by @Mokshgna | Stardance
De Title: POKEDEX [HALF] by @Mokshgna | Stardance
Devlogs:
HELLO EVERYONE I JUST MADE THIS COOL POKEDEX WHICH WORKS , IT WAS AND IS FUN TO USE AND CODE , WANNA ADD CHANGES OR MAKE IT YOUR OWN JUST GO AND DOWNLOAD IT FROM BY GITHUB
Ships:
I made a POKEDEX [HALF] from pokemon and it was fun as i did get a few mistakes but rectified it and made it succssful...
|
1793476336.817909
|
1793562736.817909
|
|
53569
|
NASA Part Cataloging System NPCS by @CollabCAD | S NASA Part Cataloging System NPCS by @CollabCAD | Stardance...
|
CollabCAD
|
1
|
34.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T15:41:24Z", "hours": 34.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built an electronic part cataloging system for NASA Goddard Space Flight Center. As a high school intern, I was tasked with manually typing into a spreadsheet the part numbers, date codes, quantities, and more for each of the thousands of electronic components my mentor had. I decided that I’m at NASA for a reason, and that I could code something up in Python, and so NPCS (NASA Part Cataloging System) was born. This is the first coding project of this scale that I have ever made, and I am more than happy to get a few users at NASA. The whole project was challenging because I didn’t know many of the libraries I was using, so I had to learn them and use them at the same time, along with a million different technical challenges that would be way too long to list. I am really proud that this project became a reality, but upset that only 10 of those 34 hours count because I forgot to submit devlogs. To test the project, make sure you have a Windows computer, or at least a Windows VM, and follow the README.md instructions on my GitHub! There is also a sample label image on my GitHub for testing.", "repo": "https://github.com/azaheer28-Asdad/Official-NASA-Part-Cataloging-System_NPCS", "demo": "https://github.com/azaheer28-Asdad/Official-NASA-Part-Cataloging-System_NPCS/releases/tag/V7.1"}]...
|
[{"post_id": 53846, "ts": "202 [{"post_id": 53846, "ts": "2026-08-24T15:24:55Z", "hours": 34.0142, "text": "I’ve added Auto-Capture so that it’s impossible to take a blurry photo! I also added a redo picture button. and some bug fixes…"}]...
|
Title: NASA Part Cataloging System NPCS by @Collab Title: NASA Part Cataloging System NPCS by @CollabCAD | Stardance
Devlogs:
I’ve added Auto-Capture so that it’s impossible to take a blurry photo! I also added a redo picture button. and some bug fixes…
Ships:
I built an electronic part cataloging system for NASA Goddard Space Flight Center. As a high school intern, I was tasked with manually typing into a spreadsheet the part numbers, date codes, quantities, and more for each of the thousands of electronic components my mentor had. I decided that I’m at NASA for a reason, and that I could code something up in Python, and so NPCS (NASA Part Cataloging System) was born. This is the first coding project of this scale that I have ever made, and I am more than happy to get a few users at NASA. The whole project was challenging because I didn’t know many of the libraries I was using, so I had to learn them and use them at the same time, along with a million different technical challenges that would be way too long to list. I am really proud that this project became a reality, but upset that only 10 of those 34 hours count because I forgot to submit devlogs. To test the project, make sure you have a Windows computer, or at least a Windows VM, and follow the README.md instructions on my GitHub! There is also a sample label image on my GitHub for testing....
|
1793454452.2777858
|
1793540852.2777858
|
|
44357
|
Starforge by @lacorte | Stardance
|
lacorte
|
2
|
81.24
|
1116
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T15:29:30Z", "hours": 34.0, "multiplier": 18.98, "payout": 618, "blessing": "neutral", "text": "⭐ Starforge is a pixel art & animation studio that runs entirely in your browser. Open (starforge.lacorte.city)[https://starforge.lacorte.city] and draw, as of this ship, your drawing moves. Ship 2 is the Animation Update. Animate : a frame timeline where every frame carries its own duration in milliseconds. Add, reorder and duplicate frames, play the reel on the document’s own clock, and draw with onion skinning. Export : an animated GIF encoder written byte by byte, from the GIF89a header to the LZW dictionary resets. When your art has more than 256 colors, a hand-rolled median-cut quantizer folds it into a legal palette instead of refusing. The Export dialog plays the actual GIF before you download it, next to its true byte size. Spritesheets come out of the same door. Draw : mirror mode, switch on an axis and the editor paints the reflection live under your pencil. The Color Studio mixes any color in HSV, hex or per-channel RGBA. Trackpad zoom got tamed: wheel deltas accumulate into clean notches instead of stepping twenty-five times per glide. Keep your work : editable .starforge project files, and Portable PNG, a real image with the whole project embedded inside, so the file you post is also the file you keep editing. Autosave still catches every stroke, and even a crash screen can still export your drawing. Under the hood : 563 tests, zero dependencies in the core. The encoder is proven against ffmpeg that decodes my GIFs and every pixel comes back identical, including a noise frame built to overflow the LZW dictionary. Quantization is deterministic, same art to the same bytes, and folds ~10,000 colors into 256 in about 23ms. Where it’s going : next ship, the “multiplayer” in the tagline becomes real, a hand-rolled CRDT (last-writer-wins per cell, Lamport clocks) and shareable rooms. Works on your phone. Shortcuts follow Aseprite. Press ? in the editor.", "repo": "https://github.com/Gabriel-Lacorte/starforge", "demo": "https://starforge.lacorte.city/"}, {"ship_num": 2, "ts": "2026-08-10T01:15:34Z", "hours": 29.0, "multiplier": 17.82, "payout": 498, "blessing": "neutral", "text": "⭐ Starforge is a pixel art studio that runs entirely in your browser. Open starforge.lacorte.city and draw. This first ship is the whole editor core, built from scratch in TypeScript with zero dependencies in the core. Draw : pencil, eraser, line, rectangle and ellipse (outline or filled), and a bucket fill with per-channel tolerance and a contiguous/global switch. Rectangular selection that lifts the pixels and lets you drag them anywhere. Layers : add, duplicate, reorder, rename. Per-layer opacity, seven blend modes, visibility and lock. Keep your work : undo/redo across pixel strokes and structural edits alike, autosave in the browser, and PNG export If the editor ever crashes, the error screen still exports your drawing. Under the hood : 208 tests, including property tests that throw hundreds of random actions at the history and require a byte-identical document back. The renderer composites once per change, not once per layer: the cache key is two integers, and panning triggers zero recompositions. Flood fill, Bresenham lines, ellipse rasterizer, composito, all hand-rolled, no graphics libraries. Where it’s going : the “multiplayer” in the tagline is the arc: a hand-rolled CRDT (last-writer-wins per cell with Lamport clocks) and shareable rooms are the next major ships. Works on your phone. Shortcuts follow Aseprite. Press ? in the editor.", "repo": "https://github.com/Gabriel-Lacorte/starforge", "demo": "https://starforge.lacorte.city/"}]...
|
[{"post_id": 64302, "ts": "202 [{"post_id": 64302, "ts": "2026-09-08T16:20:23Z", "hours": 8.6656, "text": "⭐ Starforge is a pixel art & animation studio that runs in your browser. Last time the relay queue was in memory. Now it is a real wire using native WebSocket to talk with the relay I wrote by hand on node:http , handshake, framing, mask, fragmentation, ping/pong, close codes, all of it. Draw a horizontal stroke here, a vertical one there, and both canvases land on the same pixels. 900 pixels travel in 2,730 bytes. Raw it would be 7,200 (8 bytes per pixel: u16 x , u16 y , u32 color ). On the wire the cells sort by (y, x) , coordinates go as zigzag deltas, colors go as an index into a 1-entry table. That is 3.033 bytes per pixel, and every one of the 19 operation kinds round-trips byte-for-byte. The server does not trust a single byte, each op is validated with the same applyOperation the editor uses, on a clone. A bad op earns an ERROR and the connection stays open. Receipts: 662 unit tests green 23 Chromium E2E zero production dependencies Next: the ephemeral room becomes shareable rooms /r/<id>"}, {"post_id": 61840, "ts": "2026-09-04T23:16:43Z", "hours": 9.5767, "text": "⭐ Starforge is a pixel art & animation studio that runs in your browser. Since last week Starforge learned how to disagree without falling apart, and got more comfortable on tablets along the way. This is the first piece of multiplayer, two complete editors, two independent copies of the same drawing, and a queue between them. There is no server yet. I can draw in both editors, hold every message back, reverse their order, deliver one twice, and the documents still finish on the same pixels. Alongside that invisible foundation, community conversations pointed at five visible workflow breaks: the compact tablet layout only kicked in below 720 px, colours sat with layers and frames instead of the brush, palette authoring bounced between two dialogs, brush opacity used a tiny track while layer opacity had a fine large slider, and precise add/subtract selection hid behind keyboard modifiers touch users never see. All five are fixed in this pass. Receipts 633 green unit tests, with 4 ffmpeg cross four pinned seeds × 100 generated operations across three replicas, including pixel conflicts, scalar edits, palette replacement, layer/frame creation, deletion and ordering 20 Chromium E2E tests pass receiving and applying a 900-pixel patch averages about 0.49 ms on my development machine (2,034 patches/second in the recorded run) zero production dependencies in the core Next: the queue becomes a real wire, WebSocket handshake will be written by hand on node:http with the relay on a Raspberry Pi."}, {"post_id": 52640, "ts": "2026-08-22T21:36:24Z", "hours": 9.3367, "text": "⭐ Day 18 of building Starforge, a pixel art & animation studio that lives in your browser. That heart is only half real. I drew the left side and the editor drew the right side under my pencil, live. Mirror mode landed today, and I spent an embarrassing amount of time just watching the other half appear. Two more things came with it. The Export dialog now plays your actual GIF before you download it, next to its true size, same bytes as the download, so the dialog can’t lie to you. My greeting star comes out at 2.4 KB, using 125 of 256 colors. And the encoder learned to lose colors gracefully, which is my favorite thing I’ve built this week: How it works A GIF holds at most 256 colors. Until today, art with more colors hit a wall, an error message asking you to reduce your palette. I hated that message, so now the encoder runs median cut instead. Median cut, in human terms: pour every color in your drawing into one box. Find the box’s longest side, red, green or blue, whichever stretches widest, sort the colors along that side, and cut the box in half at the median. Repeat, always cutting the widest box you have left. After 255 cuts you hold 256 boxes, and each box’s average becomes one crayon in the final palette. Colors that sat close together end up sharing a crayon, which is exactly the kind of loss your eye forgives. The sneaky part is that the same drawing must produce the identical file every single time, so every sort breaks ties by the color’s own value and every average rounds the same way. There’s a test that encodes the same art twice and demands the bytes back, identical. Receipts 563 green tests ~10,000 colors in, 256 out, in about 23ms ffmpeg decodes the quantized file, and re-encoding what it hands back produces the identical bytes Last post I asked you to export a GIF and drop it in the comments. Nobody did :C, fair enough, the star was doing all the work. So today I made it personal: open starforge.lacorte.city , turn on mirror mode, and draw half a thing. The editor does the other half. Post what you get, I’ll feature my favorite in the next devlog :D. And a real question I can’t decide alone: diagonal axes or kaleidoscope. which should mirror mode learn first? Both are on the backlog. You can decide the order. (If you want to catch the next post, follow the project, that button actually notifies you. )"}, {"post_id": 51943, "ts": "2026-08-21T21:51:53Z", "hours": 5.2739, "text": "⭐ Starforge is a pixel art & animation studio that runs in your browser. The GIF above was drawn, animated and exported inside Starforge. Yesterday I said I was writing the GIF encoder by hand. It’s finished, and already sitting behind the Export button in the editor. How it works A GIF doesn’t store pixels. It stores a conversation between two sides that build the same notebook and never send it. The encoder walks the image. The first time it meets a run of pixels it spells the run out, then writes that run in a notebook next to a number. The next time the same run shows up, it sends the number instead of the pixels. The decoder reads those numbers and builds the identical notebook as it goes, which is why the notebook itself never travels, both sides derive it from the same stream. That’s LZW, and it’s lovely right up until you notice the decoder is permanently one entry behind. It can’t file a new run until it has read the code that comes after it. So when the notebook outgrows the current code width, the two sides widen at different moments, and the encoder has to wait one step longer than feels correct. Get that off-by-one wrong and the file is perfect for a few hundred bytes and then dissolves into confetti. That was my morning. Receipts 545 green tests I encoded with my code and decoded with ffmpeg . Every pixel came back identical 16 frames of 256×256 encode in 135ms Browsers quietly treat any GIF delay under 2 centiseconds as 10, so the encoder floors every frame there. Draw something at starforge.lacorte.city , export the GIF, and drop it in the comments! I’ll feature my favorites in the next devlog :D."}, {"post_id": 51700, "ts": "2026-08-21T15:01:44Z", "hours": 7.9314, "text": "⭐ Starforge is a pixel art & animation studio that runs in your browser. Yesterday I said those numbered cells at the bottom of the screenshot were today’s story. Here they are: every cell is a frame with its own duration in milliseconds, play runs the reel on the document’s own clock, and since today, the frame you’re drawing shows its neighbours behind it as ghosts. The star that greets you is a loop with 4 frames now, so you can already see the animation. Receipts : 527 green tests 3 recompositions parked with ghosts on three new end-to-end tests in a real browser Next : I’m writing a GIF encoder from scratch. By hand. :D"}, {"post_id": 51127, "ts": "2026-08-20T17:01:06Z", "hours": 11.9494, "text": "⭐ Starforge is a pixel art & animation studio that runs in your browser. The first ship reviews asked for three things: custom colors (two voters), a less twitchy zoom (one), and opening files (one). All three landed this week. The Color Studio mixes any color in HSV, hex or per-channel RGBA and drops it straight into your palette. The zoom got tamed (story below). And you can now save and open editable .starforge projects, including inside a Portable PNG, a real image with the whole project embedded in it, so the file you post is also the file you can keep editing. Wheel deltas lie about intent A Mac voter said the zoom flew. They were right, and the bug was pretty interesting (it also ate my whole morning). One click of a mouse wheel arrives as a single event of about 100px, but a trackpad glide arrives as dozens of tiny ~4px events. The old code stepped the zoom once per event: a mouse user got one clean step per click, a trackpad user got twenty-five. And I didn’t even know pinch was part of the bug until I read how Chrome handles it: a pinch is faked as ctrl+wheel, so it lands in the same handler too. The fix: accumulate to 100, then discard the remainder. Every event banks its delta. A step only fires when the bank crosses a notch, and turning around mid-glide resets the bank instead of cancelling a step you already saw. Receipts : 511 green tests an e2e that draws, reloads the page and exports in a real browser golden ink fixtures pinned by SHA256 Those numbered cells at the bottom of the screenshot are tomorrow’s story :D"}, {"post_id": 44328, "ts": "2026-08-10T00:30:52Z", "hours": 5.2836, "text": "⭐ Starforge is a pixel art editor that runs in your browser. No engine work today, since I focused on a more important point: Whoever opens starforge.lacorte.city from a feed post, leaves in about two minutes, with no instructions and usually a phone in their hand, so the whole day went into that first visit. You can start your own document now insted of only erasing the star, your drawings survives a reload, and on a phone the layer panel became a drawer. How it works Most web editors take your drawing with them when they break. This one doesn’t. When a component throws, an error boundary renders a screen where Export PNG still works, if the editor dies, you get the PNG out before you reload. Two reasons that’s possible. The document never lived inside the component that broke: it belongs to the DocumentSession, outside the render tree. And the export never goes through the editor, it composites the frame straight from the document. The thing that holds your art and the thing that failed are not the same thing. Receipts: 208 green tests draw, reload, auto-save a keys help menu for shortcuts and gestures zoom by button, fit in one click Tomorrow morning the first real ship goes out :D"}, {"post_id": 43584, "ts": "2026-08-08T22:37:35Z", "hours": 6.3333, "text": "⭐ Starforge is a pixel art editor that runs in your browser. Yesterday it could only draw in a single surface. Today the same old star is five stacked layers, carrying its own opacity, visibility and lock, plus a rule for how its colors blend with the layers below. How it works Compositing every layer on every frame can’t hold 60fps. At 256x256 with eight layers at 800% zoom that’s eight blits of 2048×2048 per frame, about 33 megapixels of work to show a picture that didn’t change. So the editor composites once per change into an offscreen canvas, and the screen just draws that one image. Rendering with no cost since that nothing changed. All with 169 green tests."}, {"post_id": 42960, "ts": "2026-08-07T23:09:15Z", "hours": 10.7408, "text": "⭐ Starfoge: A multiplayer pixel art & animation studio that runs in your browser. Day three, and it finally draws! The whole toolbox landed with six drawing tools and keyboard shortcuts already known by pixel artists. Yesterday’s 37 green tests are 117 today. Today i want to deep dive in one of the questions i had: why fast strokes come out dotted. The browser only tells the page where the mouse is once per screen frame (~60fps), but a hand can cross half the canvas between two of those reports and a quick zigzag would become a trail of separated dots. The fix comes in two layers: First , the browser actually keeps the positions it skipped and hands them back in a bundle with each event, so I ask for those in-between samples. Second , even those have gaps when the gesture is really fast, so between every pair of samples I draw a tiny line using Bresenham algorithm , the same grid walker my line tool uses, it steps from one pixel to a touching neighbor and can’t skip a cell by construction. So every stroke you see is secretly dozens of tiny straight lines, stitched end to end. Tomorrow i will start landing Layers to our studio. Thanks for reading and see you on the next devlog :D"}, {"post_id": 42013, "ts": "2026-08-06T15:42:02Z", "hours": 6.3106, "text": "⭐ Starforge is alive in the browser! This is day two building a multiplayer pixel art studio. So far the editor opens with a little star, and every pixel stays razor sharp at any zoom. With 37 green tests I already started coding the first drawing tools (pencil, eraser, bucket). The sharpness comes from a two stage blit with shared memory. A sprite’s pixels live in one Uint8Array wrapped in an ImageData view, using only one buffer for model and image bytes. Stage one pushes just the changed rectangle onto an offscreen canvas (1:1) which ignores scaling and smoothing so it never blurs. Stage two is a single draw image that stretches the offscreen canvas to the current zoom with the GPU doing the nearest-neighbor upscaling for free. When the pencil lands next ship, the bytes it writes are already the bytes the renderer reads."}]...
|
Title: Starforge by @lacorte | Stardance
Devlogs: Title: Starforge by @lacorte | Stardance
Devlogs:
⭐ Starforge is alive in the browser! This is day two building a multiplayer pixel art studio. So far the editor opens with a little star, and every pixel stays razor sharp at any zoom. With 37 green tests I already started coding the first drawing tools (pencil, eraser, bucket). The sharpness comes from a two stage blit with shared memory. A sprite’s pixels live in one Uint8Array wrapped in an ImageData view, using only one buffer for model and image bytes. Stage one pushes just the changed rectangle onto an offscreen canvas (1:1) which ignores scaling and smoothing so it never blurs. Stage two is a single draw image that stretches the offscreen canvas to the current zoom with the GPU doing the nearest-neighbor upscaling for free. When the pencil lands next ship, the bytes it writes are already the bytes the renderer reads.
⭐ Starfoge: A multiplayer pixel art & animation studio that runs in your browser. Day three, and it finally draws! The whole toolbox landed with six drawing tools and keyboard shortcuts already known by pixel artists. Yesterday’s 37 green tests are 117 today. Today i want to deep dive in one of the questions i had: why fast strokes come out dotted. The browser only tells the page where the mouse is once per screen frame (~60fps), but a hand can cross half the canvas between two of those reports and a quick zigzag would become a trail of separated dots. The fix comes in two layers: First , the browser actually keeps the positions it skipped and hands them back in a bundle with each event, so I ask for those in-between samples. Second , even those have gaps when the gesture is really fast, so between every pair of samples I draw a tiny line using Bresenham algorithm , the same grid walker my line tool uses, it steps from one pixel to a touching neighbor and can’t skip a cell by construction. So every stroke you see is secretly dozens of tiny straight lines, stitched end to end. Tomorrow i will start landing Layers to our studio. Thanks for reading and see you on the next devlog :D
⭐ Starforge is a pixel art editor that runs in your browser. Yesterday it could only draw in a single surface. Today the same old star is five stacked layers, carrying its own opacity, visibility and lock, plus a rule for how its colors blend with the layers below. How it works Compositing every layer on every frame can’t hold 60fps. At 256x256 with eight layers at 800% zoom that’s eight blits of 2048×2048 per frame, about 33 megapixels of work to show a picture that didn’t change. So the editor composites once per change into an offscreen canvas, and the screen just draws that one image. Rendering with no cost since that nothing changed. All with 169 green tests.
⭐ Starforge is a pixel art editor that runs in your browser. No engine work today, since I focused on a more important point: Whoever opens starforge.lacorte.city from a feed post, leaves in about two minutes, with no instructions and usually a phone in their hand, so the whole day went into that first visit. You can start your own document now insted of only erasing the star, your drawings survives a reload, and on a phone the layer panel became a drawer. How it works Most web editors take your drawing with them when they break. This one doesn’t. When a component throws, an error boundary renders a screen where Export PNG still works, if the editor dies, you get the PNG out before you reload. Two reasons that’s possible. The document never lived inside the component that broke: it belongs to the DocumentSession, outside the render tree. And the export never goes through the editor, it composites the frame straight from the document. The thing that holds your art and the thing that failed are not the same thing. Receipts: 208 green tests draw, reload, auto-save a keys help menu for shortcuts and gestures zoom by button, fit in one click Tomorrow morning the first real ship goes out :D
⭐ Starforge is a pixel art & animation studio that runs in your browser. The first ship reviews asked for three things: custom colors (two voters), a less twitchy zoom (one), and opening files (one). All three landed this week. The Color Studio mixes any color in HSV, hex or per-channel RGBA and drops it straight into your palette. The zoom got tamed (story below). And you can now save and open editable .starforge projects, including inside a Portable PNG, a real image with the whole project embedded in it, so the file you post is also the file you can keep editing. Wheel deltas lie about intent A Mac voter said the zoom flew. They were right, and the bug was pretty interesting (it also ate my whole morning). One click of a mouse wheel arrives as a single event of about 100px, but a trackpad glide arrives as dozens of tiny ~4px events. The old code stepped the zoom once per event: a mouse user got one clean step per click, a trackpad user got twenty-five. And I didn’t even know pinch was part of the bug until I read how Chrome handles it: a pinch is faked as ctrl+wheel, so it lands in the same handler too. The fix: accumulate to 100, then discard the remainder. Every event banks its delta. A step only fires when the bank crosses a notch, and turning around mid-glide resets the bank instead of cancelling a step you already saw. Receipts : 511 green tests an e2e that draws, reloads the page and exports in a real browser golden ink fixtures pinned by SHA256 Those numbered cells at the bottom of the screenshot are tomorrow’s story :D
⭐ Starforge is a pixel art & animation studio that runs in your browser. Yesterday I said those numbered cells at the bottom of the screenshot were today’s story. Here they are: every cell is a frame with its own duration in milliseconds, play runs the reel on the document’s own clock, and since today, the frame you’re drawing shows its neighbours behind it as ghosts. The star that greets you is a loop with 4 frames now, so you can already see the animation. Receipts : 527 green tests 3 recompositions parked with ghosts on three new end-to-end tests in a real browser Next : I’m writing a GIF encoder from scratch. By hand. :D
⭐ Starforge is a pixel art & animation studio that runs in your browser. The GIF above was drawn, animated and exported inside Starforge. Yesterday I said I was writing the GIF encoder by hand. It’s finished, and already sitting behind the Export button in the editor. How it works A GIF doesn’t store pixels. It stores a conversation between two sides that build the same notebook and never send it. The encoder walks the image. The first time it meets a run of pixels it spells the run out, then writes that run in a notebook next to a number. The next time the same run shows up, it sends the number instead of the pixels. The decoder reads those numbers and builds the identical notebook as it goes, which is why the notebook itself never travels, both sides derive it from the same stream. That’s LZW, and it’s lovely right up until you notice the decoder is permanently one entry behind. It can’t file a new run until it has read the code that comes after it. So when the notebook outgrows the current code width, the two sides widen at different moments, and the encoder has to wait one step longer than feels correct. Get that off-by-one wrong and the file is perfect for a few hundred bytes and then dissolves into confetti. That was my morning. Receipts 545 green tests I encoded with my code and decoded with ffmpeg . Every pixel came back identical 16 frames of 256×256 encode in 135ms Browsers quietly treat any GIF delay under 2 centiseconds as 10, so the encoder floors every frame there. Draw something at starforge.lacorte.city , export the GIF, and drop it in the comments! I’ll feature my favorites in the next devlog :D.
⭐ Day 18 of building Starforge, a pixel art & animation studio that lives in your browser. That heart is only half real. I drew the left side and the editor drew the right side under my pencil, live. Mirror mode landed today, and I spent an embarrassing amount of time just watching the other half appear. Two more things came with it. The Export dialog now plays your actual GIF before you download it, next to its true size, same bytes as the download, so the dialog can’t lie to you. My greeting star comes out at 2.4 KB, using 125 of 256 colors. And the encoder learned to lose colors gracefully, which is my favorite thing I’ve built this week: How it works A GIF holds at most 256 colors. Until today, art with more colors hit a wall, an error message asking you to reduce your palette. I hated that message, so now the encoder runs median cut instead. Median cut, in human terms: pour every color in your drawing into one box. Find the box’s longest side, red, green or blue, whichever stretches widest, sort the colors along that side, and cut the box in half at the median. Repeat, always cutting the widest box you have left. After 255 cuts you hold 256 boxes, and each box’s average becomes one crayon in the final palette. Colors that sat close together end up sharing a crayon, which is exactly the kind of loss your eye forgives. The sneaky part is that the same drawing must produce the identical file every single time, so every sort breaks ties by the color’s own value and every average rounds the same way. There’s a test that encodes the same art twice and demands the bytes back, identical. Receipts 563 green tests ~10,000 colors in, 256 out, in about 23ms ffmpeg decodes the quantized file, and re-encoding what it hands back produces the identical bytes Last post I asked you to export a GIF and drop it in the comments. Nobody did :C, fair enough, the star was doing all the work. So today I made it personal: open starforge.lacorte.city , turn on mirror mode, and draw half a thing. The editor does the other half. Post what you get, I’ll feature my favorite in the next devlog :D. And a real question I can’t decide alone: diagonal axes or kaleidoscope. which should mirror mode learn first? Both are on the backlog. You can decide the order. (If you want to catch the next post, follow the project, that button actually notifies you. )
⭐ Starforge is a pixel art & animation studio that runs in your browser. Since last week Starforge learned how to disagree without falling apart, and got more comfortable on tablets along the way. This is the first piece of multiplayer, two complete editors, two independent copies of the same drawing, and a queue between them. There is no server yet. I can draw in both editors, hold every message back, reverse their order, deliver one twice, and the documents still finish on the same pixels. Alongside that invisible foundation, community conversations pointed at five visible workflow breaks: the compact tablet layout only kicked in below 720 px, colours sat with layers and frames instead of the brush, palette authoring bounced between two dialogs, brush opacity used a tiny track while layer opacity had a fine large slider, and precise add/subtract selection hid behind keyboard modifiers touch users never see. All five are fixed in this pass. Receipts 633 green unit tests, with 4 ffmpeg cross four pinned seeds × 100 generated operations across three replicas, including pixel conflicts, scalar edits, palette replacement, layer/frame creation, deletion and ordering 20 Chromium E2E tests pass receiving and applying a 900-pixel patch averages about 0.49 ms on my development machine (2,034 patches/second in the recorded run) zero production dependencies in the core Next: the queue becomes a real wire, WebSocket handshake will be written by hand on node:http with the relay on a Raspberry Pi.
⭐ Starforge is a pixel art & animation studio that runs in your browser. Last time the relay queue was in memory. Now it is a real wire using native WebSocket to talk with the relay I wrote by hand on node:http , handshake, framing, mask, fragmentation, ping/pong, close codes, all of it. Draw a horizontal stroke here, a vertical one there, and both canvases land on the same pixels. 900 pixels travel in 2,730 bytes. Raw it would be 7,200 (8 bytes per pixel: u16 x , u16 y , u32 color ). On the wire the cells sort by (y, x) , coordinates go as zigzag deltas, colors go as an index into a 1-entry table. That is 3.033 bytes per pixel, and every one of the 19 operation kinds round-trips byte-for-byte. The server does not trust a single byte, each op is validated with the same applyOperation the editor uses, on a clone. A bad op earns an ERROR and the connection stays open. Receipts: 662 unit tests green 23 Chromium E2E zero production dependencies Next: the ephemeral room becomes shareable rooms /r/<id>
Ships:
⭐ Starforge is a pixel art studio that runs entirely in your browser. Open starforge.lacorte.city and draw. This first ship is the whole editor core, built from scratch in TypeScript with zero dependencies in the core. Draw : pencil, eraser, line, rectangle and ellipse (outline or filled), and a bucket fill with per-channel tolerance and a contiguous/global switch. Rectangular selection that lifts the pixels and lets you drag them anywhere. Layers : add, duplicate, reorder, rename. Per-layer opacity, seven blend modes, visibility and lock. Keep your work : undo/redo across pixel strokes and structural edits alike, autosave in the browser, and PNG export If the editor ever crashes, the error screen still exports your drawing. Under the hood : 208 tests, including property tests that throw hundreds of random actions at the history and require a byte-identical document back. The renderer composites once per change, not once per layer: the cache key is two integers, and panning triggers zero recompositions. Flood fill, Bresenham lines, ellipse rasterizer, composito, all hand-rolled, no graphics libraries. Where it’s going : the “multiplayer” in the tagline is the arc: a hand-rolled CRDT (last-writer-wins per cell with Lamport clocks) and shareable rooms are the next major ships. Works on your phone. Shortcuts follow Aseprite. Press ? in the editor.
⭐ Starforge is a pixel art & animation studio that runs entirely in your browser. Open (starforge.lacorte.city)[https://starforge.lacorte.city] and draw, as of this ship, your drawing moves. Ship 2 is the Animation Update. Animate : a frame timeline where every frame carries its own duration in milliseconds. Add, reorder and duplicate frames, play the reel on the document’s own clock, and draw with onion skinning. Export : an animated GIF encoder written byte by byte, from the GIF89a header to the LZW dictionary resets. When your art has more than 256 colors, a hand-rolled median-cut quantizer folds it into a legal palette instead of refusing. The Export dialog plays the actual GIF before you download it, next to its true byte size. Spritesheets come out of the same door. Draw : mirror mode, switch on an axis and the editor paints the reflection live under your pencil. The Color Studio mixes any color in HSV, hex or per-channel RGBA. Trackpad zoom got tamed: wheel deltas accumulate into clean notches instead of stepping twenty-five times per glide. Keep your work : editable .starforge project files, and Portable PNG, a real image with the whole project embedded inside, so the file you post is also the file you keep editing. Autosave still catches every stroke, and even a crash screen can still export your drawing. Under the hood : 563 tests, zero dependencies in the core. The encoder is proven against ffmpeg that decodes my GIFs and every pixel comes back identical, including a noise frame built to overflow the LZW dictionary. Quantization is deterministic, same art to the same bytes, and folds ~10,000 colors into 256 in about 23ms. Where it’s going : next ship, the “multiplayer” in the tagline becomes real, a hand-rolled CRDT (last-writer-wins per cell, Lamport clocks) and shareable rooms. Works on your phone. Shortcuts follow Aseprite. Press ? in the editor....
|
1792878732.4859972
|
1793742732.4859972
|
|
53685
|
Personal Builder Portfolio by @panr | Stardance
|
panr
|
1
|
3.0
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T14:56:45Z", "hours": 3.0, "multiplier": 1.0, "payout": 3, "blessing": "neutral", "text": "I made a personal builder portfolio to showcase some of my recent and ongoing projects. The CSS interface turned out decent, despite being one of the hardest parts.", "repo": "https://github.com/routz0un1s/Builder-Portfolio", "demo": "https://routz0un1s.github.io/Builder-Portfolio/"}]...
|
[{"post_id": 53820, "ts": "202 [{"post_id": 53820, "ts": "2026-08-24T14:52:55Z", "hours": 2.6675, "text": "Finished the portfolio, with 5 sections(home, about, projects, skills and contact). Considering of adding another section where I can post some articles. Also, will be updating the projects tab with pictures and videos of the hardware projects."}]...
|
Title: Personal Builder Portfolio by @panr | Stard Title: Personal Builder Portfolio by @panr | Stardance
Devlogs:
Finished the portfolio, with 5 sections(home, about, projects, skills and contact). Considering of adding another section where I can post some articles. Also, will be updating the projects tab with pictures and videos of the hardware projects.
Ships:
I made a personal builder portfolio to showcase some of my recent and ongoing projects. The CSS interface turned out decent, despite being one of the hardest parts....
|
1793462233.4794886
|
1793548633.4794886
|
|
30329
|
Cue by @L0stsky | Stardance
|
L0stsky
|
1
|
23.06
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T14:44:55Z", "hours": 20.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So I Made Cue - A Multi OS Compatible Tool which Allows the user To Make Guides which is as Simple as Runing a Script in the background, Doing Whatever You want to Record, Use CTRL+CLICK or CTRL+ENTER to record the steps and Done!! So Basically Heres how it Works -> The User runs a Startup Script The Script Takes a Screenshot Everytime the User Presses CTRL+CLICK or CTRL+ENTER and Saves it. After going through all the Steps, the User Presses CTRL+ESC to End the Recording. After this, a New Script Is launched which loads in these Screenshots and then Uses a VL (Vision Languag) Model to Extract the User Intent. After going through all the imgs, the Data Extracted is passed through a more “Intelligent” Model which Compiles it Into a Guide. The QOF Improvement is that the It Removes the Boring task of telling someone “press x and then Click Y” till they finally Get it The Major QOF improvements are : Zero manual Screenshoting or Cropping No Manual Writing Steps Easy to Follow Guides and Allow Screenshots to be Directly Attached. No Manual Making of python Environment etc. So the Challenging Part was to get the Fricking Wayland Screenshot Working Cuz wayland wont allow Some script to Take Screenshots. Also another thing was Getting the Models to Cooperate and Stop “Hallucinating” Random Output The thing I’m Proud of the Most is that I was Able to Get the Wayland Screenshot Working and Also How I implemented the Paralled AI model Contacting Architecture for speed. So To try Cue out, You Just Click Try Project it will download a ZIP file, Extract that and Open the Folder. In the Folder Run “Cue_Windows.bat” for Windows and “Cue_Linux-Mac.sh” for Linux or Mac. Ensure that python is Installed and For Mac The Program has Permissions (In more detail on github Readme)", "repo": "https://github.com/L0stxRising/Cue", "demo": "https://github.com/L0stxRising/Cue/releases/tag/Cue_V1"}]...
|
[{"post_id": 72187, "ts": "202 [{"post_id": 72187, "ts": "2026-09-22T12:46:18Z", "hours": 0.9417, "text": "So my ship was rejected as I had used AI to generate the UI, so i just worked on the new Ui and some Bugs."}, {"post_id": 59330, "ts": "2026-09-01T01:54:03Z", "hours": 0.2806, "text": "So I noticed that I had put the AI usage to None in the beginning but later i used it to find some bugs etc and make the startup scripts so heres my AI usage if you wanna know"}, {"post_id": 55553, "ts": "2026-08-27T14:08:53Z", "hours": 0.3036, "text": "So I Broke it Again , the Models were Broken So i Just Updated the Models and Increased The Number of API Tries to 15"}, {"post_id": 55146, "ts": "2026-08-26T16:51:28Z", "hours": 0.3292, "text": "So I Found out that One of the Model I was Using Was Not Capable of the Task 🥀🥀, So I Updated the code to Use New Capable Models and also Retry If the Model Could not Extract the Data. And Now I gotta Wait Till Tommorrow Till I can ReMake the Windows Exe File (I use Linux soooo) 😭😭😭"}, {"post_id": 55020, "ts": "2026-08-26T13:25:51Z", "hours": 1.2083, "text": "So I was Finally Able to get Pyrunner Working and Make the Godamm executables for Linux and Windows. Well Finally after 22 Hours of Working and a dead Pen Drive (Idk why tf its Firmware Got erased) I finally Completed Cue"}, {"post_id": 51043, "ts": "2026-08-20T15:05:44Z", "hours": 2.7286, "text": "DevLog_6 So My dum Brain found out that Python Envs cannot just be “Packaged “ and Used on another Computer Sooooo I Updated the Startup Scripts to Make One On startup. Also IDK why but my dummahh tried to Retrain a local 2B pretrained Model but after getting 1 Epoch in 2 HOURS I just Lost Hope and Dumped the Idea."}, {"post_id": 49534, "ts": "2026-08-18T12:34:21Z", "hours": 2.8708, "text": "Devlog 5 : SO If you don’t Remember, Im Working on CUE -> A Easy af To use Tool to Make Easy to Follow Guides which Is simple as clicking to Run a Script and Then Doing Whatever Task You want. The Script AutoMatically saves Your actions and After You are done, these are Compiled into a Text Based or Both text and Image Based Guide of Your Chosing!!! Here’s What Im Working On: Made a Single Click Startup Script. Added a API key Verification. So I Fixed Some Major Cross Platform Code Errors. Packaged a Python Env With the Things for Ease of Use. Tried and Tested On Linux and Windows Thought I couldnt On Mac Since I dont Use that. Now I plan to Use the Tool to Make Guides Regarding How to use it!!!!"}, {"post_id": 47348, "ts": "2026-08-15T07:18:28Z", "hours": 2.6381, "text": "DevLog_4 : Finally Got the Fricking Images in the Guide to Work and The Sudo Permission to Work Correctly. First I tried to Embed them Directly But that didnt Work so i Just Put the Images Along with the Guide and Used Paths to render them. Then I made Improvements to my Screenshot and the Backend Code Like Gracefully exiting Rathar then the Forced Exit I was Doing Earlier. Added a “NOTE to the AI” Feature and Introduced a Smarter Model for Compiling the Data into a Guide. Now I plan to Use Pyinstaller to Make it a Executable and Make the Model Format the Guide a Little More Beautifully."}, {"post_id": 46424, "ts": "2026-08-13T16:49:28Z", "hours": 1.2117, "text": "DevLog_3 I have Attached a Demo Video of the Current Project. In the Video You Can see that the Output File is Not Properly Formatted because I opened it in Notepad But in The Actual Docs Viewer it Looks Fine. Also the |Image| Tags is a Beta Feature and Is not Fully Implemented. Also If you are Wondering, it Took the Script like 2 Minutes to Process the Screenshots (I have Cropped the Video). So I Finally Completed The Scripts for Running the Project. I made 2 scripts -> For the GUI version and the CLI version. I was able to make a minimal GUI Setup for the Project though its still a little buggy which I’ll Fix Later. Now I am Working on Fixing Some Issues with the API, Fully Implementing the images in the Guide Feature and Trying to turn it into a Application Rather than running it via Scripts."}, {"post_id": 45766, "ts": "2026-08-12T13:53:22Z", "hours": 7.8219, "text": "DevLog_2 So I Finally Was Able to Complete the AI Backend Part of the Project and let me tell you - IT WAS A NIGHTMARE . For the First 4 Hours I Tried to get a Local VLM to Work but Due to my Low end Pc it wouldnt Work so I just Gave up and Switched to Free Openrouter Models. So Here is What I’ve Made : I Made the Python File Which would Load in all the Screenshots from the Main Script. These Screenshots are then sent to an API which Describes What the User is Doing by Using the Cursor Locations. All these Observations are then Compiled by a Smarter Model To make a Comprehensive Guide. Now I plan to Try to Make a Simplistic IN-Python UI and a Script to Do all the Tasks and Package it."}, {"post_id": 43335, "ts": "2026-08-08T15:13:17Z", "hours": 2.7972, "text": "I’m building CUE —an AI-powered guide generator to solve the headache of manually making step-by-step instructions. The goal is to have a seamless tool that just works across all OSs. What’s done so far Finished the main code and the specific OS capture handlers. Every time you click anywhere on the screen, it automatically grabs a screenshot and dumps it into a local folder. The Wayland Pain: Wayland’s OS security made capturing clicks a nightmare compared to every other platform. I basically had to put Gemini’s black cap on to help me hack around Wayland security and get those screen captures working."}]...
|
Title: Cue by @L0stsky | Stardance
Devlogs:
I’m b Title: Cue by @L0stsky | Stardance
Devlogs:
I’m building CUE —an AI-powered guide generator to solve the headache of manually making step-by-step instructions. The goal is to have a seamless tool that just works across all OSs. What’s done so far Finished the main code and the specific OS capture handlers. Every time you click anywhere on the screen, it automatically grabs a screenshot and dumps it into a local folder. The Wayland Pain: Wayland’s OS security made capturing clicks a nightmare compared to every other platform. I basically had to put Gemini’s black cap on to help me hack around Wayland security and get those screen captures working.
DevLog_2 So I Finally Was Able to Complete the AI Backend Part of the Project and let me tell you - IT WAS A NIGHTMARE . For the First 4 Hours I Tried to get a Local VLM to Work but Due to my Low end Pc it wouldnt Work so I just Gave up and Switched to Free Openrouter Models. So Here is What I’ve Made : I Made the Python File Which would Load in all the Screenshots from the Main Script. These Screenshots are then sent to an API which Describes What the User is Doing by Using the Cursor Locations. All these Observations are then Compiled by a Smarter Model To make a Comprehensive Guide. Now I plan to Try to Make a Simplistic IN-Python UI and a Script to Do all the Tasks and Package it.
DevLog_3 I have Attached a Demo Video of the Current Project. In the Video You Can see that the Output File is Not Properly Formatted because I opened it in Notepad But in The Actual Docs Viewer it Looks Fine. Also the |Image| Tags is a Beta Feature and Is not Fully Implemented. Also If you are Wondering, it Took the Script like 2 Minutes to Process the Screenshots (I have Cropped the Video). So I Finally Completed The Scripts for Running the Project. I made 2 scripts -> For the GUI version and the CLI version. I was able to make a minimal GUI Setup for the Project though its still a little buggy which I’ll Fix Later. Now I am Working on Fixing Some Issues with the API, Fully Implementing the images in the Guide Feature and Trying to turn it into a Application Rather than running it via Scripts.
DevLog_4 : Finally Got the Fricking Images in the Guide to Work and The Sudo Permission to Work Correctly. First I tried to Embed them Directly But that didnt Work so i Just Put the Images Along with the Guide and Used Paths to render them. Then I made Improvements to my Screenshot and the Backend Code Like Gracefully exiting Rathar then the Forced Exit I was Doing Earlier. Added a “NOTE to the AI” Feature and Introduced a Smarter Model for Compiling the Data into a Guide. Now I plan to Use Pyinstaller to Make it a Executable and Make the Model Format the Guide a Little More Beautifully.
Devlog 5 : SO If you don’t Remember, Im Working on CUE -> A Easy af To use Tool to Make Easy to Follow Guides which Is simple as clicking to Run a Script and Then Doing Whatever Task You want. The Script AutoMatically saves Your actions and After You are done, these are Compiled into a Text Based or Both text and Image Based Guide of Your Chosing!!! Here’s What Im Working On: Made a Single Click Startup Script. Added a API key Verification. So I Fixed Some Major Cross Platform Code Errors. Packaged a Python Env With the Things for Ease of Use. Tried and Tested On Linux and Windows Thought I couldnt On Mac Since I dont Use that. Now I plan to Use the Tool to Make Guides Regarding How to use it!!!!
DevLog_6 So My dum Brain found out that Python Envs cannot just be “Packaged “ and Used on another Computer Sooooo I Updated the Startup Scripts to Make One On startup. Also IDK why but my dummahh tried to Retrain a local 2B pretrained Model but after getting 1 Epoch in 2 HOURS I just Lost Hope and Dumped the Idea.
So I was Finally Able to get Pyrunner Working and Make the Godamm executables for Linux and Windows. Well Finally after 22 Hours of Working and a dead Pen Drive (Idk why tf its Firmware Got erased) I finally Completed Cue
So I Found out that One of the Model I was Using Was Not Capable of the Task 🥀🥀, So I Updated the code to Use New Capable Models and also Retry If the Model Could not Extract the Data. And Now I gotta Wait Till Tommorrow Till I can ReMake the Windows Exe File (I use Linux soooo) 😭😭😭
So I Broke it Again , the Models were Broken So i Just Updated the Models and Increased The Number of API Tries to 15
So I noticed that I had put the AI usage to None in the beginning but later i used it to find some bugs etc and make the startup scripts so heres my AI usage if you wanna know
So my ship was rejected as I had used AI to generate the UI, so i just worked on the new Ui and some Bugs.
Ships:
So I Made Cue - A Multi OS Compatible Tool which Allows the user To Make Guides which is as Simple as Runing a Script in the background, Doing Whatever You want to Record, Use CTRL+CLICK or CTRL+ENTER to record the steps and Done!! So Basically Heres how it Works -> The User runs a Startup Script The Script Takes a Screenshot Everytime the User Presses CTRL+CLICK or CTRL+ENTER and Saves it. After going through all the Steps, the User Presses CTRL+ESC to End the Recording. After this, a New Script Is launched which loads in these Screenshots and then Uses a VL (Vision Languag) Model to Extract the User Intent. After going through all the imgs, the Data Extracted is passed through a more “Intelligent” Model which Compiles it Into a Guide. The QOF Improvement is that the It Removes the Boring task of telling someone “press x and then Click Y” till they finally Get it The Major QOF improvements are : Zero manual Screenshoting or Cropping No Manual Writing Steps Easy to Follow Guides and Allow Screenshots to be Directly Attached. No Manual Making of python Environment etc. So the Challenging Part was to get the Fricking Wayland Screenshot Working Cuz wayland wont allow Some script to Take Screenshots. Also another thing was Getting the Models to Cooperate and Stop “Hallucinating” Random Output The thing I’m Proud of the Most is that I was Able to Get the Wayland Screenshot Working and Also How I implemented the Paralled AI model Contacting Architecture for speed. So To try Cue out, You Just Click Try Project it will download a ZIP file, Extract that and Open the Folder. In the Folder Run “Cue_Windows.bat” for Windows and “Cue_Linux-Mac.sh” for Linux or Mac. Ensure that python is Installed and For Mac The Program has Permissions (In more detail on github Readme)...
|
1793328700.502479
|
1793415100.502479
|
|
37148
|
sassy the bot by @ejr | Stardance
|
ejr
|
1
|
2.38
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T13:48:00Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a slack bot that goes by Sassy. A bot with some personality (but only when you ping it). The ONE challenge I found that took me, brace yourself… 2 Whole weeks to diagnose😔 I know I know but it was related to the Bolt app not connected EVEN AFTER enabling socket mode. I’m so glad I’m done with it and I’m happy that I learnt something new that I would’ve never learnt from a tutorial.", "repo": "https://github.com/realejr/Sassy", "demo": "https://hackclub.enterprise.slack.com/archives/C0BSFQN5BRS"}]...
|
[{"post_id": 55755, "ts": "202 [{"post_id": 55755, "ts": "2026-08-27T18:55:24Z", "hours": 0.3797, "text": "Was notified of a timeout error when the joke and cat fact command was entered by the user and I didn’t realize that it was still running in vs code as well as nest🤦♂️🤦♂️ , anyways I’m happy I managed to fix it."}, {"post_id": 53761, "ts": "2026-08-24T13:19:45Z", "hours": 0.5769, "text": "It’s finally done!!! Sassy the bot!"}, {"post_id": 53141, "ts": "2026-08-23T16:02:30Z", "hours": 0.4136, "text": "Devlog #3 Alr I’m Back to working on this bot😔😔Last time it kept giving me a socket mode error so I hope it works now!"}, {"post_id": 39508, "ts": "2026-08-02T14:41:22Z", "hours": 0.4014, "text": "Devlog #2 Someone help, anyone I don’t know what the issue could be"}, {"post_id": 39488, "ts": "2026-08-02T13:54:43Z", "hours": 0.28, "text": "Devlog #1 !!!! I just changed the reply that the bot gives, nothing major."}]...
|
Title: sassy the bot by @ejr | Stardance
Devlogs: Title: sassy the bot by @ejr | Stardance
Devlogs:
Devlog #1 !!!! I just changed the reply that the bot gives, nothing major.
Devlog #2 Someone help, anyone I don’t know what the issue could be
Devlog #3 Alr I’m Back to working on this bot😔😔Last time it kept giving me a socket mode error so I hope it works now!
It’s finally done!!! Sassy the bot!
Was notified of a timeout error when the joke and cat fact command was entered by the user and I didn’t realize that it was still running in vs code as well as nest🤦♂️🤦♂️ , anyways I’m happy I managed to fix it.
Ships:
I made a slack bot that goes by Sassy. A bot with some personality (but only when you ping it). The ONE challenge I found that took me, brace yourself… 2 Whole weeks to diagnose😔 I know I know but it was related to the Bolt app not connected EVEN AFTER enabling socket mode. I’m so glad I’m done with it and I’m happy that I learnt something new that I would’ve never learnt from a tutorial....
|
1793509069.5996778
|
1793595469.5996778
|
|
53700
|
Concert I've been too site by @WillKitch | Sta Concert I've been too site by @WillKitch | Stardance...
|
WillKitch
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T13:43:13Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website about the concerts I have been too. This is my first project for Stardance.", "repo": "https://github.com/glimmercharger/concerts", "demo": "https://concert.willkitch.me"}]...
|
[{"post_id": 53766, "ts": "202 [{"post_id": 53766, "ts": "2026-08-24T13:26:32Z", "hours": 0.6025, "text": "Added CSS and a new concert and concerts I want to go to. (the page is zoomed out in the picture)"}, {"post_id": 53743, "ts": "2026-08-24T12:32:38Z", "hours": 0.5614, "text": "I’ve made a rough sketch of the site. I need to start with the CSS though."}]...
|
Title: Concert I've been too site by @WillKitc Title: Concert I've been too site by @WillKitch | Stardance
Devlogs:
I’ve made a rough sketch of the site. I need to start with the CSS though.
Added CSS and a new concert and concerts I want to go to. (the page is zoomed out in the picture)
Ships:
I made a website about the concerts I have been too. This is my first project for Stardance....
|
1793469253.8861141
|
1793555653.8861141
|
|
52500
|
roShaN OS by @projectroshan917 | Stardance
|
projectroshan917
|
2
|
5.0
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T12:37:13Z", "hours": 1.0, "multiplier": 2.06, "payout": 2, "blessing": "neutral", "text": "My website be more reliable to use because i add a working webpage with multiple draggable windows and with multiple games and apps to use them at once as well.", "repo": "https://github.com/Roshan-coder123/roShaN-OS", "demo": "https://roshan-coder123.github.io/roShaN-OS/"}, {"ship_num": 2, "ts": "2026-08-22T09:03:10Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is roShaN OS which is based on my name roShaN OS where you can use multiple apps and games as well websites. Features: Websites: You can access my My portfolio website My Boba website NASA gallery Google Apps: You can access app like: Calculator Also can play games like tick tac toe and snake game You can get some info about me in about Roshan section. You can save your sticky notes here. And You can listen 11 different musics here without internet. You can Customise roShaN OS according to to your need and choice by selecting colour theamnad changing background here.", "repo": "https://github.com/Roshan-coder123/roShaN-OS", "demo": "https://roshan-coder123.github.io/roShaN-OS/"}]...
|
[{"post_id": 53744, "ts": "202 [{"post_id": 53744, "ts": "2026-08-24T12:34:36Z", "hours": 0.3325, "text": "I have a working webpage with multiple draggable windows. Also i change my css code to make my OS more smoother and reliable to use."}, {"post_id": 52404, "ts": "2026-08-22T15:05:44Z", "hours": 0.4636, "text": "Made better to my OS by adding dragging options for apps and make better in mobile device."}, {"post_id": 52167, "ts": "2026-08-22T08:06:59Z", "hours": 1.315, "text": "Changing background pic options and added 11 music on music app which can run without internet as well. Background options on roShaN OS are: 1 defult, 2 grid, 3 stars, 4 circuit."}, {"post_id": 52042, "ts": "2026-08-22T02:45:05Z", "hours": 3.0617, "text": "My first own OS “roShaN OS”"}]...
|
Title: roShaN OS by @projectroshan917 | Stardance
Title: roShaN OS by @projectroshan917 | Stardance
Devlogs:
My first own OS “roShaN OS”
Changing background pic options and added 11 music on music app which can run without internet as well. Background options on roShaN OS are: 1 defult, 2 grid, 3 stars, 4 circuit.
Made better to my OS by adding dragging options for apps and make better in mobile device.
I have a working webpage with multiple draggable windows. Also i change my css code to make my OS more smoother and reliable to use.
Ships:
This is roShaN OS which is based on my name roShaN OS where you can use multiple apps and games as well websites. Features: Websites: You can access my My portfolio website My Boba website NASA gallery Google Apps: You can access app like: Calculator Also can play games like tick tac toe and snake game You can get some info about me in about Roshan section. You can save your sticky notes here. And You can listen 11 different musics here without internet. You can Customise roShaN OS according to to your need and choice by selecting colour theamnad changing background here.
My website be more reliable to use because i add a working webpage with multiple draggable windows and with multiple games and apps to use them at once as well....
|
1792875275.2741797
|
1793739275.2741797
|
|
50415
|
Krypton OS by @CreatorPoints | Stardance
|
CreatorPoints
|
1
|
7.91
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T12:32:01Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a linux distro simulating (or rather emulating, given the fact how crazy it is under the hood) project i made that runs on your web! has a partially working web engine, CRAZY loaded terminal,a notes app as why not and a virtual file system. I am proud that i achieved something THIS good for the first time ever! [Tiny note from dev: you gotta install the OS first, tip: try rummaging the BIOS]", "repo": "https://github.com/CreatorPoints/Krypton-OS", "demo": "https://krypton-os.web.app"}]...
|
[{"post_id": 55175, "ts": "202 [{"post_id": 55175, "ts": "2026-08-26T17:34:47Z", "hours": 0.9056, "text": "AWW MAN, hackatime’s server were down and i lost like 2 hours spent on this bug fix, but now, here I present you, Krypton OS, more better, more advanced [Major Bugfixes + QoL features]"}, {"post_id": 53736, "ts": "2026-08-24T12:27:20Z", "hours": 0.3397, "text": "Finished with some changes, READY TO SHIP"}, {"post_id": 53711, "ts": "2026-08-24T11:51:40Z", "hours": 0.2875, "text": "Bruh i may have gone a bit too far, but atleast the apt downloads and stuffs are no more fake like texts prints and instead are fetched from a repo LOL"}, {"post_id": 50935, "ts": "2026-08-20T12:27:14Z", "hours": 6.7767, "text": "Polishing rest of the things. What more features shall I add?"}]...
|
Title: Krypton OS by @CreatorPoints | Stardance
D Title: Krypton OS by @CreatorPoints | Stardance
Devlogs:
Polishing rest of the things. What more features shall I add?
Bruh i may have gone a bit too far, but atleast the apt downloads and stuffs are no more fake like texts prints and instead are fetched from a repo LOL
Finished with some changes, READY TO SHIP
AWW MAN, hackatime’s server were down and i lost like 2 hours spent on this bug fix, but now, here I present you, Krypton OS, more better, more advanced [Major Bugfixes + QoL features]
Ships:
I made a linux distro simulating (or rather emulating, given the fact how crazy it is under the hood) project i made that runs on your web! has a partially working web engine, CRAZY loaded terminal,a notes app as why not and a virtual file system. I am proud that i achieved something THIS good for the first time ever! [Tiny note from dev: you gotta install the OS first, tip: try rummaging the BIOS]...
|
1793321468.7550323
|
1793407868.7550323
|
|
52501
|
Updgrading My Website Knowloedge by @nove | Starda Updgrading My Website Knowloedge by @nove | Stardance...
|
nove
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T12:29:46Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Yes i updgraded my knowledge of website and javascript. its now level 3 i think need to go far more away. thank you stardance, hackclub for making this possible. Love you guysss.", "repo": "https://github.com/NOVE300IQ/nasawebsite", "demo": "https://nove300iq.github.io/nasawebsite/"}]...
|
[{"post_id": 53737, "ts": "202 [{"post_id": 53737, "ts": "2026-08-24T12:28:11Z", "hours": 1.9972, "text": "Ohh now i hacked some data from NASA 🥲🫨"}]...
|
Title: Updgrading My Website Knowloedge by @nove | Title: Updgrading My Website Knowloedge by @nove | Stardance
Devlogs:
Ohh now i hacked some data from NASA 🥲🫨
Ships:
Yes i updgraded my knowledge of website and javascript. its now level 3 i think need to go far more away. thank you stardance, hackclub for making this possible. Love you guysss....
|
1793476299.7466354
|
1793562699.7466354
|
|
53002
|
OutSide-newtab by @Mrithul_E | Stardance
|
Mrithul_E
|
1
|
9.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T12:11:47Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created this newtab website because the default newtab in chrome is boring and blotted. So i created this simple minimalistic newtab with glass morphism. The hard problem was to make the glass effect , finally I found https://liquid-glass.ybouane.com/ that made it easier. But there was a problem , the glass element should be a direct child of the root(background) this create a lot of problem with alignment . So I used the CSS only glass effect on some small elements like the shortcuts This project was for “Give your Website a Pulse”", "repo": "https://github.com/Mrithul-E/Outside-newtab", "demo": "https://outside-newtab.vercel.app/"}]...
|
[{"post_id": 53717, "ts": "202 [{"post_id": 53717, "ts": "2026-08-24T11:59:36Z", "hours": 0.5664, "text": "Devlog -4 Made the weather card’s initial position to top left corner otherwise it will at center of the screen unless the user manually position it. Also added LICENSE.md and README.md image of fixed version:"}, {"post_id": 53674, "ts": "2026-08-24T10:48:33Z", "hours": 3.2556, "text": "Added functional shortcut bar favicons are retrieved using google favicon api"}, {"post_id": 52946, "ts": "2026-08-23T10:07:26Z", "hours": 2.3106, "text": "Added weather card with glass effect Used https://github.com/ybouane/liquidglass for glass effect and Open meteo api for weather data"}, {"post_id": 52570, "ts": "2026-08-22T19:06:59Z", "hours": 3.0472, "text": "Devlog-1 Added a simple clock and a simple google search bar"}]...
|
Title: OutSide-newtab by @Mrithul_E | Stardance
D Title: OutSide-newtab by @Mrithul_E | Stardance
Devlogs:
Devlog-1 Added a simple clock and a simple google search bar
Added weather card with glass effect Used https://github.com/ybouane/liquidglass for glass effect and Open meteo api for weather data
Added functional shortcut bar favicons are retrieved using google favicon api
Devlog -4 Made the weather card’s initial position to top left corner otherwise it will at center of the screen unless the user manually position it. Also added LICENSE.md and README.md image of fixed version:
Ships:
I created this newtab website because the default newtab in chrome is boring and blotted. So i created this simple minimalistic newtab with glass morphism. The hard problem was to make the glass effect , finally I found https://liquid-glass.ybouane.com/ that made it easier. But there was a problem , the glass element should be a direct child of the root(background) this create a lot of problem with alignment . So I used the CSS only glass effect on some small elements like the shortcuts This project was for “Give your Website a Pulse”...
|
1793530384.9023535
|
1793616784.9023535
|
|
53562
|
NASA API by @Sushmita | Stardance
|
Sushmita
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T11:46:27Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website that uses a NASA API to load information on space. The most challenging part was styling my website with CSS because changing the size of the image, trying to center the text, and other small tweaks caused results I didn’t intend. However, I’m most proud that I was able to finally get my website to look how I want it to, and that I have ideas on how to improve it on my next ship.", "repo": "https://github.com/Sushmita-Jacob/website-pulse", "demo": "https://sushmita-jacob.github.io/website-pulse/"}]...
|
[{"post_id": 53691, "ts": "202 [{"post_id": 53691, "ts": "2026-08-24T11:23:55Z", "hours": 0.8106, "text": "Devlog #3: Styling I added basic styling by following step 6 of the guide. I had trouble making the zig-zag lines because I was indecisive and didn’t want to make the points by hand. Like the guide suggested, I tried using https://bennettfeely.com/clippy/ , but it didn’t fit what I wanted, so I generated the the points using AI. The rest of the styling was done by hand. I added two fonts from Google, Black Ops One and Noto Sans Mono. My next step is to make the date picker functional."}, {"post_id": 53665, "ts": "2026-08-24T10:25:53Z", "hours": 0.6683, "text": "Devlog #2: Loading NASA’s Data This devlog is all from part 4 of the guide. I learned more about JavaScript and used it to load an image and fun fact/explanation. I used a conditional statement to check what data type the media was (I checked for video and image using the guide and iframe/Youtube videos as the challenge note) and added basic error handling to show the error message on screen. The next step is to start styling with CSS (because myy website lowkey looks like a chud right now lol)"}, {"post_id": 53461, "ts": "2026-08-24T01:06:30Z", "hours": 0.655, "text": "Devlog #1: Setting Up I learned how to set up Node.js and Vite! The guide taught me about how APIs worked and how to keep them private using a .env and .gitignore file. I learned how to set up a Vite development server in my terminal (which is similar to Live Server extensions on VS Code/GitHub Codespaces). I had an error when deploying my project to GitHub Pages, but after rereading the guide I realized I missed the part that said to delete everything in src/main.js and src/style.css as good dev practice."}]...
|
Title: NASA API by @Sushmita | Stardance
Devlogs: Title: NASA API by @Sushmita | Stardance
Devlogs:
Devlog #1: Setting Up I learned how to set up Node.js and Vite! The guide taught me about how APIs worked and how to keep them private using a .env and .gitignore file. I learned how to set up a Vite development server in my terminal (which is similar to Live Server extensions on VS Code/GitHub Codespaces). I had an error when deploying my project to GitHub Pages, but after rereading the guide I realized I missed the part that said to delete everything in src/main.js and src/style.css as good dev practice.
Devlog #2: Loading NASA’s Data This devlog is all from part 4 of the guide. I learned more about JavaScript and used it to load an image and fun fact/explanation. I used a conditional statement to check what data type the media was (I checked for video and image using the guide and iframe/Youtube videos as the challenge note) and added basic error handling to show the error message on screen. The next step is to start styling with CSS (because myy website lowkey looks like a chud right now lol)
Devlog #3: Styling I added basic styling by following step 6 of the guide. I had trouble making the zig-zag lines because I was indecisive and didn’t want to make the points by hand. Like the guide suggested, I tried using https://bennettfeely.com/clippy/ , but it didn’t fit what I wanted, so I generated the the points using AI. The rest of the styling was done by hand. I added two fonts from Google, Black Ops One and Noto Sans Mono. My next step is to make the date picker functional.
Ships:
I made a website that uses a NASA API to load information on space. The most challenging part was styling my website with CSS because changing the size of the image, trying to center the text, and other small tweaks caused results I didn’t intend. However, I’m most proud that I was able to finally get my website to look how I want it to, and that I have ideas on how to improve it on my next ship....
|
1793451384.9412115
|
1793537784.9412115
|
|
46399
|
Margen by @jupeme6 | Stardance
|
jupeme6
|
2
|
42.0
|
393
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T11:27:08Z", "hours": 22.0, "multiplier": 10.32, "payout": 225, "blessing": "neutral", "text": "What did you make? A markdown note editor called Margen with a digital typewriter aesthetic. Three columns: sidebar with notes, raw markdown editor, live preview. The parser is written from scratch, no library. Six betas added LaTeX support with KaTeX, a formula toolbar, dark mode, ES/EN i18n, code highlighting, PWA offline, import/export, folders with colors, linked notes via [[wiki-style]] syntax, and formula OCR via Tesseract.js. Local-first, no account, no server. What was challenging? The markdown parser broke on multi-line constructs. Rewrote it line-by-line. KaTeX loads async so had to chain CSS then JS then auto-render. Formula OCR needed a text-to-LaTeX converter since Tesseract is for text not math. What are you proud of? The parser from scratch, the formula toolbar for non-LaTeX users, and the whole thing working offline as a PWA. What should people know so they can test? Open the demo. Choose language on first launch. Click + for new note. Type markdown, see live preview. Press ? for cheat sheet. Click “formulas” for math buttons. Click camera to scan a formula. Create folders with colors. Link notes with [[Title]]. Gear icon for dark mode and language. Live demo: https://notjuangamer10.github.io/margen/ Source: https://github.com/notjuangamer10/margen", "repo": "https://github.com/NOTJuangamer10/margen", "demo": "https://notjuangamer10.github.io/margen/"}, {"ship_num": 2, "ts": "2026-08-13T14:13:11Z", "hours": 20.0, "multiplier": 8.34, "payout": 168, "blessing": "neutral", "text": "What did you make? A markdown note editor called Margen, built with a “digital typewriter” aesthetic. The app is a three-column layout: a sidebar with the list of notes, a raw markdown editor pane, and a live preview pane that renders the markdown as you type. The markdown parser is written from scratch, no marked.js or any library, just a chain of regex and line-by-line processing. Built in four planned betas, currently on Beta 3. Beta 1 was the basics: editor, preview, note list, search, auto-save. Beta 2 fixed a bug where opening a note to read it would mark it as modified, added a markdown cheat sheet accessible via a button, and rewrote the markdown parser which had bugs with lists, blockquotes and code blocks. Beta 3 added LaTeX support via KaTeX for math formulas, a formula toolbar with 16 buttons that insert LaTeX at the cursor so you don’t need to know LaTeX syntax, a dark mode with a warm dark palette, and an ES/EN language toggle. Everything is local-first, stored in localStorage, no account, no server, no tracking. The goal is a clean, offline place to write university notes with formulas, without the bloat of Notion or the online-only dependency of most editors. What was challenging? The markdown parser was the hardest part. My first version used a single regex per element type, which broke on multi-line constructs like lists and blockquotes. The blockquote bug was sneaky: after escaping HTML, the > character becomes >, but my regex was looking for > literally, so blockquotes never matched. Rewrote the parser to process line by line, opening and closing ul/ol/blockquote tags as it goes, and protecting code blocks in a temporary array so other regexes don’t touch them. The LaTeX integration had a loading order issue. KaTeX loads from CDN asynchronously, so the first renderMathInElement call would fail because the library wasn’t ready yet. Had to chain the loads: first KaTeX CSS, then KaTeX JS, then the auto-render extension, and only then try to render. If a formula has a syntax error, I set throwOnError to false so it shows the raw LaTeX instead of breaking the whole preview. The dirty flag bug from Beta 2 was a design problem. Before, every time you opened a note it would save with modificada=now and jump to the top of the sidebar, which made browsing notes frustrating. Had to track whether the user actually changed anything before marking a note as modified. What are you proud of? The markdown parser, written entirely from scratch, no library. About 150 lines of regex and line-by-line processing, handles headers, bold, italic, lists, code blocks, inline code, links, images, blockquotes and horizontal rules. The formula toolbar with 16 buttons that insert LaTeX at the cursor position, so you can write math without knowing LaTeX syntax. And the “digital typewriter” aesthetic: Bitter serif for rendered content, Inter for UI, JetBrains Mono for the raw editor, thin dividing lines instead of cards or shadows. What should people know so they can test your project? Open the demo URL. A welcome note with markdown examples appears on first launch. Click the + button in the sidebar to create a new note. Type markdown in the left pane, see it rendered live in the right pane. Click the ? button to open a markdown cheat sheet. Click the “formulas” button in the editor header to open a toolbar with 16 math buttons (square root, integral, fraction, etc.) that insert LaTeX at the cursor. Click the “ajustes” button to switch between light/dark mode and ES/EN language. Notes auto-save to localStorage, nothing is sent anywhere. Live demo: https://notjuangamer10.github.io/margen/ Source: https://github.com/notjuangamer10/margen", "repo": "https://github.com/NOTJuangamer10/margen", "demo": "https://notjuangamer10.github.io/margen/"}]...
|
[{"post_id": 53666, "ts": "202 [{"post_id": 53666, "ts": "2026-08-24T10:30:30Z", "hours": 5.8731, "text": "Margen Beta 6, the final version. Three new features.Folders with colors. You can create folders (subjects) and assign notes to them. Each folder gets a color from a preset palette. The sidebar shows a folder list above the notes, click a folder to filter. A selector in the editor header lets you assign or change the folder of the current note. Useful for organizing by subject: Calculus, Physics, Programming.Linked notes. You can now link notes together using double brackets like [[Note Title]]. The parser finds the note by title and creates a clickable link in the preview. Click it and the linked note opens. If the note doesn’t exist, it shows in red with strikethrough. Useful for connecting related topics across subjects.Formula OCR. A camera button in the editor header lets you upload a photo of a math formula. Tesseract.js extracts the text and a basic converter turns common math notation into LaTeX: ^ becomes ^{}, sqrt becomes \\sqrt{}, int becomes \\int, Greek letters get backslashed, etc. The result is inserted at the cursor wrapped in $$ for block math. It’s not perfect OCR (Tesseract is designed for text, not math) but it gives you a starting point that you can edit manually.Calling Margen complete. Six betas across editor, parser, cheat sheet, LaTeX, dark mode, i18n, code highlighting, PWA, import, export, onboarding, shortcuts, focus mode, word count, folders, linked notes and formula OCR."}, {"post_id": 53355, "ts": "2026-08-23T21:25:38Z", "hours": 7.2656, "text": "Margen 5.2. Onboarding, power features, and translation fixes.Language prompt on first launch. New users see a modal asking them to choose Spanish or English before the app loads. This was the top complaint from reviewers, who said the language toggle was hard to find.Onboarding tour. First-time visitors get a welcome screen explaining how Margen works: type markdown on the left, see it rendered on the right, press + for new note, press ? for cheat sheet, press “formulas” for math buttons. Also lists the keyboard shortcuts. Dismissible with one click.Keyboard shortcuts. Ctrl+B for bold, Ctrl+I for italic, Ctrl+N for new note, Ctrl+E for focus mode, Ctrl+S for save. The shortcuts wrap the selected text or insert empty markers if nothing is selected.Focus mode. A toggle button (or Ctrl+E) hides the sidebar so you can write without distractions. The editor and preview center on screen with a max width for comfortable reading.Word counter. A small character and word count appears in the editor header, updating live as you type.Translation fixes. The welcome note and the markdown cheat sheet now respect the language setting and switch between Spanish and English fully. Relative dates like “ahora mismo” now show as “just now” in English."}, {"post_id": 52997, "ts": "2026-08-23T11:47:00Z", "hours": 4.8347, "text": "Margen 5.1. Fixes based on reviewer feedback.Full i18n. Before, switching to English left several strings in Spanish because only parts of the UI were translated. Now everything visible translates: buttons, placeholders, footer, header, cheat sheet, settings panel, export/import labels. The language toggle updates the UI in real time without needing a reload.Strikethrough support. Added text syntax to the markdown parser for strikethrough text. Also added it to the cheat sheet.Auto-detect language. On first launch, Margen now checks the browser’s language setting and defaults to English or Spanish accordingly. The user can still override it in settings.Export as .md. The export button now opens a small menu with three options: export as HTML (downloads a standalone file, no new tab), export as Markdown (.md file), and print to PDF. Previously it only exported HTML and opened a new tab, which was annoying."}, {"post_id": 52215, "ts": "2026-08-22T09:50:08Z", "hours": 3.8311, "text": "Beta 4 of Margen, the final version. Four additions. Code syntax highlighting via highlight.js. Code blocks in the preview now get colored based on language. Works in dark mode too. Export and import. An export button downloads the current note as a standalone HTML file with markdown, LaTeX and code already rendered, and opens the print dialog so you can save it as PDF. An import button lets you load an existing .md file as a new note. PWA installable. A service worker caches the core files so the app works offline on desktop and Android. The manifest is generated dynamically. CDN assets like KaTeX and highlight.js are not cached to avoid bloat, so formulas and code highlighting need internet the first time, but the app itself, your notes and the markdown parser all work offline. Calling Margen done. Four betas: basic editor, parser fix and cheat sheet, LaTeX and dark mode, now code highlighting, import, export and PWA."}, {"post_id": 46300, "ts": "2026-08-13T13:07:03Z", "hours": 5.9975, "text": "Beta 3 of Margen adds LaTeX support, dark mode and multi-language. LaTeX is the big one. KaTeX loads from CDN the first time you need it, then renders $…$ as inline math and $$…$$ as block math. So you can write $E=mc^2$ inline or a full integral in a block. If a formula has an error it just shows the raw text instead of breaking the preview. The formula toolbar was important to me because I don’t know LaTeX syntax by heart. A “formulas” button in the editor header opens a bar with 16 buttons: square root, integral, fraction, superscript, subscript, sum, limit, Greek letters, infinity, plus-minus, inequalities, arrows. Click one and it inserts the LaTeX at the cursor position, then you just fill in the blanks. No need to remember that integral is \\int_{}^{} or that fraction is \\frac{}{}. Dark mode uses a warm dark palette instead of the usual cold gray, so it still feels like the typewriter aesthetic. The toggle is in a settings panel in the sidebar, along with an ES/EN language switch that translates the whole UI. Next version will be the last: code syntax highlighting, PDF export, and PWA installable for offline use on desktop and Android. But I’m starting to get tired, so i wil be on vacation for the next week!"}, {"post_id": 45569, "ts": "2026-08-12T04:40:53Z", "hours": 6.3206, "text": "Beta 2 of Margen fixes a usability bug and adds helpful features. Fixed the modified timestamp bug. Before, every time you opened a note to read it, it would save with modificada=now and jump to the top of the sidebar list. Now there is a dirty flag that tracks whether you actually changed anything. Opening a note to read it does not mark it as modified. The sidebar list stays stable when you are just browsing. Added a markdown cheat sheet. A ? button in the sidebar opens a floating panel with the full syntax: headers, bold, italic, lists, code blocks, links, images, blockquotes, horizontal rules. Useful for when you forget how to do something without leaving the editor. Also added a welcome note that appears on first launch with examples of every markdown feature rendered in the preview. You can delete it if you want. Changed the typography from Source Serif 4 to Bitter, a slab serif that gives a more typewriter feel without being monospaced. Still legible, but more character. I personally like this version, this is like, the base of what i want to build, i would leave it like this and thats it, but I feel that i can get better at coding if i just add more things, it would be more usefull"}, {"post_id": 45210, "ts": "2026-08-11T15:15:38Z", "hours": 7.8731, "text": "Started a new project called Margen, a markdown note editor for university notes. The idea came from wanting a clean, offline place to write notes with formulas, without the bloat of Notion or the online-only dependency of most editors. Beta 1 is the basics. A three-column layout: sidebar with the list of notes, editor pane with a monospace textarea, and a live preview pane that renders markdown as you type. The markdown parser is written from scratch, no marked.js or any library, just a chain of regex replaces handling headers, bold, italic, lists, code blocks, inline code, links, images, blockquotes and horizontal rules. The design is “digital typewriter”: white background, serif typography for the rendered content, monospace for the raw editor, thin dividing lines instead of cards or shadows. The aesthetic is deliberately calm and distraction-free, like iA Writer or Bear. Notes auto-save to localStorage 400ms after you stop typing. There is also a Ctrl+S shortcut for manual save. The sidebar shows title, first line preview and relative date for each note, and filters instantly as you type in the search bar. Next version will add subjects (folders), tags, and better organization."}]...
|
Title: Margen by @jupeme6 | Stardance
Devlogs:
St Title: Margen by @jupeme6 | Stardance
Devlogs:
Started a new project called Margen, a markdown note editor for university notes. The idea came from wanting a clean, offline place to write notes with formulas, without the bloat of Notion or the online-only dependency of most editors. Beta 1 is the basics. A three-column layout: sidebar with the list of notes, editor pane with a monospace textarea, and a live preview pane that renders markdown as you type. The markdown parser is written from scratch, no marked.js or any library, just a chain of regex replaces handling headers, bold, italic, lists, code blocks, inline code, links, images, blockquotes and horizontal rules. The design is “digital typewriter”: white background, serif typography for the rendered content, monospace for the raw editor, thin dividing lines instead of cards or shadows. The aesthetic is deliberately calm and distraction-free, like iA Writer or Bear. Notes auto-save to localStorage 400ms after you stop typing. There is also a Ctrl+S shortcut for manual save. The sidebar shows title, first line preview and relative date for each note, and filters instantly as you type in the search bar. Next version will add subjects (folders), tags, and better organization.
Beta 2 of Margen fixes a usability bug and adds helpful features. Fixed the modified timestamp bug. Before, every time you opened a note to read it, it would save with modificada=now and jump to the top of the sidebar list. Now there is a dirty flag that tracks whether you actually changed anything. Opening a note to read it does not mark it as modified. The sidebar list stays stable when you are just browsing. Added a markdown cheat sheet. A ? button in the sidebar opens a floating panel with the full syntax: headers, bold, italic, lists, code blocks, links, images, blockquotes, horizontal rules. Useful for when you forget how to do something without leaving the editor. Also added a welcome note that appears on first launch with examples of every markdown feature rendered in the preview. You can delete it if you want. Changed the typography from Source Serif 4 to Bitter, a slab serif that gives a more typewriter feel without being monospaced. Still legible, but more character. I personally like this version, this is like, the base of what i want to build, i would leave it like this and thats it, but I feel that i can get better at coding if i just add more things, it would be more usefull
Beta 3 of Margen adds LaTeX support, dark mode and multi-language. LaTeX is the big one. KaTeX loads from CDN the first time you need it, then renders $…$ as inline math and $$…$$ as block math. So you can write $E=mc^2$ inline or a full integral in a block. If a formula has an error it just shows the raw text instead of breaking the preview. The formula toolbar was important to me because I don’t know LaTeX syntax by heart. A “formulas” button in the editor header opens a bar with 16 buttons: square root, integral, fraction, superscript, subscript, sum, limit, Greek letters, infinity, plus-minus, inequalities, arrows. Click one and it inserts the LaTeX at the cursor position, then you just fill in the blanks. No need to remember that integral is \int_{}^{} or that fraction is \frac{}{}. Dark mode uses a warm dark palette instead of the usual cold gray, so it still feels like the typewriter aesthetic. The toggle is in a settings panel in the sidebar, along with an ES/EN language switch that translates the whole UI. Next version will be the last: code syntax highlighting, PDF export, and PWA installable for offline use on desktop and Android. But I’m starting to get tired, so i wil be on vacation for the next week!
Beta 4 of Margen, the final version. Four additions. Code syntax highlighting via highlight.js. Code blocks in the preview now get colored based on language. Works in dark mode too. Export and import. An export button downloads the current note as a standalone HTML file with markdown, LaTeX and code already rendered, and opens the print dialog so you can save it as PDF. An import button lets you load an existing .md file as a new note. PWA installable. A service worker caches the core files so the app works offline on desktop and Android. The manifest is generated dynamically. CDN assets like KaTeX and highlight.js are not cached to avoid bloat, so formulas and code highlighting need internet the first time, but the app itself, your notes and the markdown parser all work offline. Calling Margen done. Four betas: basic editor, parser fix and cheat sheet, LaTeX and dark mode, now code highlighting, import, export and PWA.
Margen 5.1. Fixes based on reviewer feedback.Full i18n. Before, switching to English left several strings in Spanish because only parts of the UI were translated. Now everything visible translates: buttons, placeholders, footer, header, cheat sheet, settings panel, export/import labels. The language toggle updates the UI in real time without needing a reload.Strikethrough support. Added text syntax to the markdown parser for strikethrough text. Also added it to the cheat sheet.Auto-detect language. On first launch, Margen now checks the browser’s language setting and defaults to English or Spanish accordingly. The user can still override it in settings.Export as .md. The export button now opens a small menu with three options: export as HTML (downloads a standalone file, no new tab), export as Markdown (.md file), and print to PDF. Previously it only exported HTML and opened a new tab, which was annoying.
Margen 5.2. Onboarding, power features, and translation fixes.Language prompt on first launch. New users see a modal asking them to choose Spanish or English before the app loads. This was the top complaint from reviewers, who said the language toggle was hard to find.Onboarding tour. First-time visitors get a welcome screen explaining how Margen works: type markdown on the left, see it rendered on the right, press + for new note, press ? for cheat sheet, press “formulas” for math buttons. Also lists the keyboard shortcuts. Dismissible with one click.Keyboard shortcuts. Ctrl+B for bold, Ctrl+I for italic, Ctrl+N for new note, Ctrl+E for focus mode, Ctrl+S for save. The shortcuts wrap the selected text or insert empty markers if nothing is selected.Focus mode. A toggle button (or Ctrl+E) hides the sidebar so you can write without distractions. The editor and preview center on screen with a max width for comfortable reading.Word counter. A small character and word count appears in the editor header, updating live as you type.Translation fixes. The welcome note and the markdown cheat sheet now respect the language setting and switch between Spanish and English fully. Relative dates like “ahora mismo” now show as “just now” in English.
Margen Beta 6, the final version. Three new features.Folders with colors. You can create folders (subjects) and assign notes to them. Each folder gets a color from a preset palette. The sidebar shows a folder list above the notes, click a folder to filter. A selector in the editor header lets you assign or change the folder of the current note. Useful for organizing by subject: Calculus, Physics, Programming.Linked notes. You can now link notes together using double brackets like [[Note Title]]. The parser finds the note by title and creates a clickable link in the preview. Click it and the linked note opens. If the note doesn’t exist, it shows in red with strikethrough. Useful for connecting related topics across subjects.Formula OCR. A camera button in the editor header lets you upload a photo of a math formula. Tesseract.js extracts the text and a basic converter turns common math notation into LaTeX: ^ becomes ^{}, sqrt becomes \sqrt{}, int becomes \int, Greek letters get backslashed, etc. The result is inserted at the cursor wrapped in $$ for block math. It’s not perfect OCR (Tesseract is designed for text, not math) but it gives you a starting point that you can edit manually.Calling Margen complete. Six betas across editor, parser, cheat sheet, LaTeX, dark mode, i18n, code highlighting, PWA, import, export, onboarding, shortcuts, focus mode, word count, folders, linked notes and formula OCR.
Ships:
What did you make? A markdown note editor called Margen, built with a “digital typewriter” aesthetic. The app is a three-column layout: a sidebar with the list of notes, a raw markdown editor pane, and a live preview pane that renders the markdown as you type. The markdown parser is written from scratch, no marked.js or any library, just a chain of regex and line-by-line processing. Built in four planned betas, currently on Beta 3. Beta 1 was the basics: editor, preview, note list, search, auto-save. Beta 2 fixed a bug where opening a note to read it would mark it as modified, added a markdown cheat sheet accessible via a button, and rewrote the markdown parser which had bugs with lists, blockquotes and code blocks. Beta 3 added LaTeX support via KaTeX for math formulas, a formula toolbar with 16 buttons that insert LaTeX at the cursor so you don’t need to know LaTeX syntax, a dark mode with a warm dark palette, and an ES/EN language toggle. Everything is local-first, stored in localStorage, no account, no server, no tracking. The goal is a clean, offline place to write university notes with formulas, without the bloat of Notion or the online-only dependency of most editors. What was challenging? The markdown parser was the hardest part. My first version used a single regex per element type, which broke on multi-line constructs like lists and blockquotes. The blockquote bug was sneaky: after escaping HTML, the > character becomes >, but my regex was looking for > literally, so blockquotes never matched. Rewrote the parser to process line by line, opening and closing ul/ol/blockquote tags as it goes, and protecting code blocks in a temporary array so other regexes don’t touch them. The LaTeX integration had a loading order issue. KaTeX loads from CDN asynchronously, so the first renderMathInElement call would fail because the library wasn’t ready yet. Had to chain the loads: first KaTeX CSS, then KaTeX JS, then the auto-render extension, and only then try to render. If a formula has a syntax error, I set throwOnError to false so it shows the raw LaTeX instead of breaking the whole preview. The dirty flag bug from Beta 2 was a design problem. Before, every time you opened a note it would save with modificada=now and jump to the top of the sidebar, which made browsing notes frustrating. Had to track whether the user actually changed anything before marking a note as modified. What are you proud of? The markdown parser, written entirely from scratch, no library. About 150 lines of regex and line-by-line processing, handles headers, bold, italic, lists, code blocks, inline code, links, images, blockquotes and horizontal rules. The formula toolbar with 16 buttons that insert LaTeX at the cursor position, so you can write math without knowing LaTeX syntax. And the “digital typewriter” aesthetic: Bitter serif for rendered content, Inter for UI, JetBrains Mono for the raw editor, thin dividing lines instead of cards or shadows. What should people know so they can test your project? Open the demo URL. A welcome note with markdown examples appears on first launch. Click the + button in the sidebar to create a new note. Type markdown in the left pane, see it rendered live in the right pane. Click the ? button to open a markdown cheat sheet. Click the “formulas” button in the editor header to open a toolbar with 16 math buttons (square root, integral, fraction, etc.) that insert LaTeX at the cursor. Click the “ajustes” button to switch between light/dark mode and ES/EN language. Notes auto-save to localStorage, nothing is sent anywhere. Live demo: https://notjuangamer10.github.io/margen/ Source: https://github.com/notjuangamer10/margen
What did you make? A markdown note editor called Margen with a digital typewriter aesthetic. Three columns: sidebar with notes, raw markdown editor, live preview. The parser is written from scratch, no library. Six betas added LaTeX support with KaTeX, a formula toolbar, dark mode, ES/EN i18n, code highlighting, PWA offline, import/export, folders with colors, linked notes via [[wiki-style]] syntax, and formula OCR via Tesseract.js. Local-first, no account, no server. What was challenging? The markdown parser broke on multi-line constructs. Rewrote it line-by-line. KaTeX loads async so had to chain CSS then JS then auto-render. Formula OCR needed a text-to-LaTeX converter since Tesseract is for text not math. What are you proud of? The parser from scratch, the formula toolbar for non-LaTeX users, and the whole thing working offline as a PWA. What should people know so they can test? Open the demo. Choose language on first launch. Click + for new note. Type markdown, see live preview. Press ? for cheat sheet. Click “formulas” for math buttons. Click camera to scan a formula. Create folders with colors. Link notes with [[Title]]. Gear icon for dark mode and language. Live demo: https://notjuangamer10.github.io/margen/ Source: https://github.com/notjuangamer10/margen...
|
1792878577.2213483
|
1793742577.2213483
|
|
53343
|
PDEDM by @jamessonani | Stardance
|
jamessonani
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T11:20:45Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "When I first discovered that NASA publishes live asteroid tracking data through their public APIs, I noticed a gap — the data existed, but there was no accessible way for everyday people to actually understand it. Scientists could parse the raw JSON, but a student, a teacher, or a curious parent had no way to quickly answer: “Is anything dangerous passing by Earth this week?” That question became the foundation of PDEDM — the Planetary Defense & Ephemeris Data Manager. PDEDM is a full-stack, real-time dashboard that connects directly to NASA’s Near Earth Object Web Service (NeoWs) and the JPL Horizons system. It pulls live orbital telemetry for every asteroid scheduled to pass Earth within a 7-day forecast window and presents it through two distinct interfaces: The first is the NEO Operations Dashboard, designed for users with a scientific background. It displays raw metrics — relative velocity, miss distance in Lunar units, estimated diameter ranges, and orbital parameters — through sortable data tables, velocity distribution charts, and an interactive ephemeris calculator. The second is the Public Briefing portal, built specifically for non-technical audiences. This page takes the same dataset and automatically translates the numbers into real-world analogies. A 140-meter asteroid becomes “the size of a football stadium.” A velocity of 23 km/s becomes “30 times faster than a speeding bullet.” A simple threat banner system — Condition Green for safe, Condition Yellow for hazardous — lets anyone, including children, immediately understand the current state of near-Earth activity. The biggest technical challenge was working within NASA’s API constraints. Their feed endpoint enforces a strict 7-day maximum per request and a rolling quota of 1,000 requests per hour. I built a server-side proxy layer to securely handle authentication, forward rate-limit headers to the frontend, and ensure the API key never gets exposed to the browser. This project pushed me to learn things I had never touched before — server-side API routing, real-time state management, orbital mechanics terminology, and building interfaces that make complex scientific data feel approachable. It was frustrating at times, but seeing the final result pull live data from NASA and present it in a way that anyone can understand made every broken build worth it.", "repo": "https://github.com/jamessonani1020-web/PDEDM", "demo": "https://pdedm.netlify.app/"}]...
|
[{"post_id": 53688, "ts": "202 [{"post_id": 53688, "ts": "2026-08-24T11:15:42Z", "hours": 0.4406, "text": "Retyped page.tx to fix a massive amount of error."}, {"post_id": 53261, "ts": "2026-08-23T18:25:25Z", "hours": 0.2697, "text": "Doesn’t know why whole code is tagged re, dont know where i have made an error."}, {"post_id": 53194, "ts": "2026-08-23T17:10:28Z", "hours": 0.5856, "text": "I am building a live Planetary Defense & Ephemeris Data Manager (PDEDM). It hooks directly into NASA’s servers in real-time to track every single asteroid passing by Earth. For scientists, it’s a high-tech dashboard to monitor orbital trajectories and isolate hazardous threats. But I also built a ‘Public Briefing’ portal for kids and everyday adults—it takes all that terrifying, complex NASA math and automatically translates it into plain English (like telling you an asteroid is ‘the size of a school bus’ or ‘traveling 30x faster than a bullet’) so everyone can easily understand what’s happening in space right now"}]...
|
Title: PDEDM by @jamessonani | Stardance
Devlogs: Title: PDEDM by @jamessonani | Stardance
Devlogs:
I am building a live Planetary Defense & Ephemeris Data Manager (PDEDM). It hooks directly into NASA’s servers in real-time to track every single asteroid passing by Earth. For scientists, it’s a high-tech dashboard to monitor orbital trajectories and isolate hazardous threats. But I also built a ‘Public Briefing’ portal for kids and everyday adults—it takes all that terrifying, complex NASA math and automatically translates it into plain English (like telling you an asteroid is ‘the size of a school bus’ or ‘traveling 30x faster than a bullet’) so everyone can easily understand what’s happening in space right now
Doesn’t know why whole code is tagged re, dont know where i have made an error.
Retyped page.tx to fix a massive amount of error.
Ships:
When I first discovered that NASA publishes live asteroid tracking data through their public APIs, I noticed a gap — the data existed, but there was no accessible way for everyday people to actually understand it. Scientists could parse the raw JSON, but a student, a teacher, or a curious parent had no way to quickly answer: “Is anything dangerous passing by Earth this week?” That question became the foundation of PDEDM — the Planetary Defense & Ephemeris Data Manager. PDEDM is a full-stack, real-time dashboard that connects directly to NASA’s Near Earth Object Web Service (NeoWs) and the JPL Horizons system. It pulls live orbital telemetry for every asteroid scheduled to pass Earth within a 7-day forecast window and presents it through two distinct interfaces: The first is the NEO Operations Dashboard, designed for users with a scientific background. It displays raw metrics — relative velocity, miss distance in Lunar units, estimated diameter ranges, and orbital parameters — through sortable data tables, velocity distribution charts, and an interactive ephemeris calculator. The second is the Public Briefing portal, built specifically for non-technical audiences. This page takes the same dataset and automatically translates the numbers into real-world analogies. A 140-meter asteroid becomes “the size of a football stadium.” A velocity of 23 km/s becomes “30 times faster than a speeding bullet.” A simple threat banner system — Condition Green for safe, Condition Yellow for hazardous — lets anyone, including children, immediately understand the current state of near-Earth activity. The biggest technical challenge was working within NASA’s API constraints. Their feed endpoint enforces a strict 7-day maximum per request and a rolling quota of 1,000 requests per hour. I built a server-side proxy layer to securely handle authentication, forward rate-limit headers to the frontend, and ensure the API key never gets exposed to the browser. This project pushed me to learn things I had never touched before — server-side API routing, real-time state management, orbital mechanics terminology, and building interfaces that make complex scientific data feel approachable. It was frustrating at times, but seeing the final result pull live data from NASA and present it in a way that anyone can understand made every broken build worth it....
|
1793328570.414643
|
1793414970.414643
|
|
52250
|
Smart Doorbell by @yannickalois | Stardance
|
yannickalois
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T11:15:34Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a smart touchscreen dashboard for a Raspberry Pi with a live webcam, weather information, and a music section. The most challenging part was connecting the webcam to the Flask backend and creating a responsive interface for the touchscreen. I am proud of creating a system that can run continuously and automatically start on the Raspberry Pi. To test it, you need a Raspberry Pi, a USB webcam, a touchscreen, Python, and the required dependencies from the project.", "repo": "https://github.com/Keinchili/Smart-Doorbell", "demo": ""}]...
|
[{"post_id": 53169, "ts": "202 [{"post_id": 53169, "ts": "2026-08-23T16:44:43Z", "hours": 0.3686, "text": "Finished the Frontend HTML"}, {"post_id": 51550, "ts": "2026-08-21T10:04:31Z", "hours": 0.325, "text": "Code the first art of my webinterface backend"}]...
|
Title: Smart Doorbell by @yannickalois | Stardance Title: Smart Doorbell by @yannickalois | Stardance
Devlogs:
Code the first art of my webinterface backend
Finished the Frontend HTML
Ships:
I built a smart touchscreen dashboard for a Raspberry Pi with a live webcam, weather information, and a music section. The most challenging part was connecting the webcam to the Flask backend and creating a responsive interface for the touchscreen. I am proud of creating a system that can run continuously and automatically start on the Raspberry Pi. To test it, you need a Raspberry Pi, a USB webcam, a touchscreen, Python, and the required dependencies from the project....
|
1793440104.0187502
|
1793526504.0187502
|
|
53696
|
What your browser tells by @tobias_pacal | Stardan What your browser tells by @tobias_pacal | Stardance...
|
tobias_pacal
|
1
|
2.37
|
4
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T11:00:56Z", "hours": 2.0, "multiplier": 2.06, "payout": 4, "blessing": "neutral", "text": "A browser fingerprint tool that runs 7 privacy tests locally — showing your public IP, canvas/audio fingerprint, fonts, GPU, WebRTC leak, and a combined device ID score, all without sending data anywhere.", "repo": "https://github.com/tobiawspac/IP-Grabber", "demo": "https://ip-grabber-a2k.pages.dev"}]...
|
[{"post_id": 53962, "ts": "202 [{"post_id": 53962, "ts": "2026-08-24T17:54:20Z", "hours": 0.3653, "text": "rewrite time"}, {"post_id": 53679, "ts": "2026-08-24T10:58:33Z", "hours": 1.9719, "text": "I’ve built a tool that runs seven tests directly in the browser and shows what information you’re revealing on every page you visit — public IP, canvas fingerprint, audio fingerprint, installed fonts, GPU, WebRTC leak and combined device ID."}]...
|
Title: What your browser tells by @tobias_pacal | Title: What your browser tells by @tobias_pacal | Stardance
Devlogs:
I’ve built a tool that runs seven tests directly in the browser and shows what information you’re revealing on every page you visit — public IP, canvas fingerprint, audio fingerprint, installed fonts, GPU, WebRTC leak and combined device ID.
rewrite time
Ships:
A browser fingerprint tool that runs 7 privacy tests locally — showing your public IP, canvas/audio fingerprint, fonts, GPU, WebRTC leak, and a combined device ID score, all without sending data anywhere....
|
1792882086.6793573
|
1793746086.6793573
|
|
52351
|
Obscure Exchange by @poepoepipi | Stardance
|
poepoepipi
|
1
|
5.0
|
30
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T10:52:06Z", "hours": 5.0, "multiplier": 5.63, "payout": 30, "blessing": "neutral", "text": "Disrupting the industry with our patented, decentralized, machine-learning-enhanced, edge-computing JSON blockchain solution. Obscure Exchange is a simple exchange rate calculator for unusual digital currencies and units. It has currencies like Stardust from StarDance, which I had to do some calculations for because I wanted to find its precise worth. It also has some other stuff that I threw in, so now you can convert boring currencies into your favorites, like Big Macs or even DDR4 RAM.", "repo": "https://github.com/poepoepipi/Obscure-Exchange", "demo": "https://poepoepipi.github.io/Obscure-Exchange/"}]...
|
[{"post_id": 52568, "ts": "202 [{"post_id": 52568, "ts": "2026-08-22T19:04:15Z", "hours": 0.8092, "text": "I finished the database and the README. I had to do some calculations, like determining the worth of Stardust with a lot of data points, and I threw in some other stuff too. This is definitely something that, when I am bored, I will just add stuff to since it was pretty fun to research all the stuff."}, {"post_id": 52381, "ts": "2026-08-22T14:29:51Z", "hours": 4.5461, "text": "I made this website that shows exchange rates for special, weird, and digital currencies instead of standard currencies. Right now, I’ve mainly focused on building the website itself. I made it so all the currency data is loaded from a JSON file, so adding or changing currencies will be easy. The only thing left to do is create the actual data file."}]...
|
Title: Obscure Exchange by @poepoepipi | Stardance Title: Obscure Exchange by @poepoepipi | Stardance
Devlogs:
I made this website that shows exchange rates for special, weird, and digital currencies instead of standard currencies. Right now, I’ve mainly focused on building the website itself. I made it so all the currency data is loaded from a JSON file, so adding or changing currencies will be easy. The only thing left to do is create the actual data file.
I finished the database and the README. I had to do some calculations, like determining the worth of Stardust with a lot of data points, and I threw in some other stuff too. This is definitely something that, when I am bored, I will just add stuff to since it was pretty fun to research all the stuff.
Ships:
Disrupting the industry with our patented, decentralized, machine-learning-enhanced, edge-computing JSON blockchain solution. Obscure Exchange is a simple exchange rate calculator for unusual digital currencies and units. It has currencies like Stardust from StarDance, which I had to do some calculations for because I wanted to find its precise worth. It also has some other stuff that I threw in, so now you can convert boring currencies into your favorites, like Big Macs or even DDR4 RAM....
|
1792882102.6078708
|
1793746102.6078708
|
|
52412
|
Desk Bud by @Afraz | Stardance
|
Afraz
|
1
|
7.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T10:39:13Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a a Small Cute Bot That Sit By Your Desk Side. It is Useful For Setting Alarms and Reminding oF Tasks Hardest Part Of The Entire Project was finding a box that would fit everything and actually look good, this was hard because i needed to find a random box as i couldnt make one as i dont have a 3d printer. ISNT IT CUTE :] ? lol", "repo": "https://github.com/afrazakbar/Desk-Bud", "demo": ""}]...
|
[{"post_id": 52438, "ts": "202 [{"post_id": 52438, "ts": "2026-08-22T15:41:17Z", "hours": 3.15, "text": "made the desk bot an enclosure, transfered the circuit from a breadboard to a perfboard, mounted stuff in the enclosure and testing and a heck lot of debugging, main issues were: components not fitting in the enclosure, oled glitching out, power issues etc."}, {"post_id": 51765, "ts": "2026-08-21T16:35:34Z", "hours": 0.9642, "text": "trial and error(mostly errors) OF TRYNA FIT IT INTO A BOX, i first got like 3 boxes they were all too big and janky, so i took a small box and added some foam board inside to make it sturdy, then i failed as the ESP32 wont fit in the box and i just felt tired so i left it for the next day"}, {"post_id": 51691, "ts": "2026-08-21T14:49:36Z", "hours": 3.0267, "text": "Desk Bud Work In Progress Desk Bud is a desk bot that sits on your desks and helps you complete your tasks, set alarms and to just look cute, (it is supposed to resemble something like an elmo)"}]...
|
Title: Desk Bud by @Afraz | Stardance
Devlogs:
De Title: Desk Bud by @Afraz | Stardance
Devlogs:
Desk Bud Work In Progress Desk Bud is a desk bot that sits on your desks and helps you complete your tasks, set alarms and to just look cute, (it is supposed to resemble something like an elmo)
trial and error(mostly errors) OF TRYNA FIT IT INTO A BOX, i first got like 3 boxes they were all too big and janky, so i took a small box and added some foam board inside to make it sturdy, then i failed as the ESP32 wont fit in the box and i just felt tired so i left it for the next day
made the desk bot an enclosure, transfered the circuit from a breadboard to a perfboard, mounted stuff in the enclosure and testing and a heck lot of debugging, main issues were: components not fitting in the enclosure, oled glitching out, power issues etc.
Ships:
I made a a Small Cute Bot That Sit By Your Desk Side. It is Useful For Setting Alarms and Reminding oF Tasks Hardest Part Of The Entire Project was finding a box that would fit everything and actually look good, this was hard because i needed to find a random box as i couldnt make one as i dont have a 3d printer. ISNT IT CUTE :] ? lol...
|
1793462218.2924216
|
1793548618.2924216
|
|
53395
|
knullOS by @harshitkataria20 | Stardance
|
harshitkataria20
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T09:48:44Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made an webOS , it was very challenging as i never worked with js that much but i still did it , the css was a little tuff also.", "repo": "https://github.com/hshit2010/knullOS", "demo": "https://aboutharshit.info/knullOS/"}]...
|
[{"post_id": 53649, "ts": "202 [{"post_id": 53649, "ts": "2026-08-24T09:41:41Z", "hours": 0.7558, "text": "just completed my OS"}, {"post_id": 53233, "ts": "2026-08-23T17:51:37Z", "hours": 0.6414, "text": "creating my very on web-based OS , hopefully it turns out to be good"}]...
|
Title: knullOS by @harshitkataria20 | Stardance
D Title: knullOS by @harshitkataria20 | Stardance
Devlogs:
creating my very on web-based OS , hopefully it turns out to be good
just completed my OS
Ships:
i made an webOS , it was very challenging as i never worked with js that much but i still did it , the css was a little tuff also....
|
1793332103.0367749
|
1793418503.0367749
|
|
14070
|
Timetable by @omeriadon | Stardance
|
omeriadon
|
2
|
371.91
|
2591
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T09:11:11Z", "hours": 233.0, "multiplier": 18.49, "payout": 2143, "blessing": "neutral", "text": "This ship, I completely remade the app to work around accounts, and all the features that come with that I added a server, because it used to just store your timetable in your local storage and that was quite boring honestly creating a server for this has allowed me to add accounts, notifications, live activities, friends, shared events, multiple devices in the same account, and has made the website much easier to make (still in development, thats why the top devlogs are talking about the website not the app) The app now has all of this: Grades, track the score of all of your subjects notifications for each subject you have and your events etc live activity throughout each school day telling you your subjects etc sharing your location, subjects, and more with friends widgets that show your your subjects, upcoming events, and your friends’ schedules lots of administration options to manage pretty much everything, including who else is admin lol full support for siri, shortcuts, spotlight, and apple intelligence a full apple watch app btw i know 350 hours on a timetable app sounds insane (😭) but its because this project has 4 different aspects: swiftui client for iPhone, iPad, and mac swiftui client for apple watch a website client (still in development) the server that handles everything, and the database i promise it does more than just tell you your subjects 🙏", "repo": "https://github.com/omeriadon/Timetable", "demo": "https://testflight.apple.com/join/DDUXPSq3"}, {"ship_num": 2, "ts": "2026-07-15T13:35:31Z", "hours": 94.0, "multiplier": 9.5, "payout": 448, "blessing": "neutral", "text": "So I made a timetable app for my school, super-specialised and for ios, watchos, and macos. its got live activities and notifications to show you current and next subjects throughout the school day, widgets for your weekly schedule, ability to see your friends’ timetables, and server sync. and apple intelligence support!", "repo": "https://github.com/omeriadon/Timetable", "demo": "https://testflight.apple.com/join/DDUXPSq3"}]...
|
[{"post_id": 65346, "ts": "202 [{"post_id": 65346, "ts": "2026-09-10T13:08:58Z", "hours": 8.2983, "text": "Continuing the assorted improvements to the app: Fixed stacked drawers so nested drawer state updates reactively. Reworked the Friends page into shared List, ListSection, ListRow, and Card components. Preserved friend drag-and-drop ordering within the new layout. Improved timetable UX: i fixed the lesson selection in week view correctly aligned the “now” indicator in today view restricted timetable mode navigation to mobile through CSS, cos desktop already has the sidebar improved planner event styling. made the drawer compenent animate in and out, something i lost from the react -> solid migration I also added a reusable event-tag selection row with symbols and selected-state feedback."}, {"post_id": 62745, "ts": "2026-09-06T08:06:14Z", "hours": 5.9261, "text": "As well as migrating to Tanstack, I wanted even more speed, just for fun at this point honestly, so I decided to move to SolidJS from React. Its decently faster while looking similar to react, and it has some syntax stuff that i much prefer over react. this is basically just adding some margin for me to make bad code The end product looks identical so theres not much to show.. apart from the migration, I’ve also been designing the new landing page, which will also use the 3d model thing. the big question is figuring out how to make the 3d markers for each classroom register correctly, because i need to show a pin for each user at the right place, from swiftui, and somehow embed it into a realitykit 3d model. but im sure this use case has been done many times before so i can find something online!"}, {"post_id": 60821, "ts": "2026-09-03T13:24:26Z", "hours": 7.5314, "text": "Im making a 3d model of the school. this is so that i can show a whole literal map of the campus in the app, and then you can see where each user is, in 3d! i could even reexport it for the website, potentially its going to be interactive and everything"}, {"post_id": 59542, "ts": "2026-09-01T12:52:51Z", "hours": 1.2314, "text": "ok so i think i have optimised it as much as i can lol tanstack clearly was a good idea, it just needed some optimisations!"}, {"post_id": 59501, "ts": "2026-09-01T11:30:41Z", "hours": 8.1464, "text": "I did a few things in this devlog, got quite carried away frankly. So I migrated the codebase from Next.js to Tanstack. The reason was that i was seeing a lot of speed concerns, especially on the landing page. it was just lagging so much. i tried it on all my devices on all the browsers and it was there half the time. after a lot of commenting things out i just couldnt find a bug, so now i moved to tanstack. hopefully taht will remove at least some problems. in any case, i got bored of next.js and tanstack is a different framework to play with and make use of!! also, i continued the landing page by adding cards for each item. i don’t really like it right now, but i have established that i need to add these cards, if not in a different UI. The titles of each card are just image-masks, of Apple wallpapers! i went through some archive and picked out the ones i like, and applied a brightness 200% filter, and they look really nice now. after i finish the landing page im gonna work on rehauling the rest of the ui to be more intuitive and actually usable"}, {"post_id": 57354, "ts": "2026-08-29T14:02:16Z", "hours": 2.4136, "text": "I really wanted the first screen for timetable to look really really interesting and unique and instantly recognisable as Timetable, so i made the text instead of a boring white, it now has 3 really nice effects applied: A grain overlay, or noise, which in this case doesn’t make it look paper but looks nice nonetheless Its not flat white, its white at the top and goes to brown at the bottom, more noticeable when you close up. subtle but also nice The “white” isn’t even white. Its a particular white image i had a lot of difficulty in obtaining. it is the third screenshot, the “white” png. Its an .avif , and it uses some HDR-capable color space format something, which on compatible browsers make the timetable text show considerably brighter than everywhere else on your screen, which makes it really pop! i plan on using this effect in other places as well across the landing page to make it just pop a bit more. (the 4th image shows the white pixel showing as 1.25. anything above 1 is hdr.)"}, {"post_id": 57217, "ts": "2026-08-29T10:04:27Z", "hours": 1.4844, "text": "I added a title to the lading site, but as you can see its not just any title. it uses this package called fitty to make the text size up to the full width of the page, and it does indeed look massive. and it also goes under the rectangles of the logo, so its like an apple depth effect you get on iphone lockscreens i found the website really laggy while scrolling somewhere while finishing of the main interactive icon, and i couldnt figure out why after removing everything that could have been gpu intensive (my gpu was spiking to 80% while just scrolling) so after all that my most likely theory is that the lag is just my computer and not the website (or both 😭😭) also when i made that main art, i made the border radii use px units, which made it look quite deformed on smaller screens, since the rectangle’s size is relative to screen width, whereas border radius is constant… so i went and fixed that too"}, {"post_id": 56944, "ts": "2026-08-28T23:37:12Z", "hours": 1.0728, "text": "After much trying to make glass, yet again, i failed. So now im just using blur and these edge effects, and i think it looks nice! theres even a hover eect, as shown in the second screenshot (class details show and the rectangle rotates a bit randomly)"}, {"post_id": 56543, "ts": "2026-08-28T10:38:02Z", "hours": 8.8014, "text": "I started to make the landing page, and i decided, after very much research from other landing sites I’ve seen, that the main item should be an interactive timetable, a version of the app icon. but interactive and glassy. im trying to recreate everything in css but its not looking as smooth and polished as real liquid glass does so ye. im kinda getting close though! I also added a navbar item that just is the link to actually open timetable, and when you hover it shows options to either open the app in testflight or open the web version which just redirects to /login. and its background switches to black when you start scrolling, which will make more sense later. i haven’t really planned the rest of the landing page, and i might remove this entire component if i find a good liquid glass implementation i can use, especially with bouncy animations etc. but yeah. (worst part is i might even just go change the entire app icon in a week so that kinda wastes all this time 😭😭😭)"}, {"post_id": 53528, "ts": "2026-08-24T03:23:23Z", "hours": 5.4669, "text": "I have started using the shared components around the website, and its actually looking pretty nice! most importantly, these components can be changed once and work everywhere and i removed the drawers i was using everywhere, and i also made said drawers wider while i was rehauling the drawers i also kinda broke their animations and i don’t know how to fix it 😭 the whole website looks really basic now, since its obviously using now the shard unstyled components, and i was thinking about the theme and decided maybe it should be unstyled, and only the user’s own events and content etc can have colours."}, {"post_id": 52138, "ts": "2026-08-22T07:15:18Z", "hours": 9.6475, "text": "I think I have finished making all of the shared components I put everything inside accordions to organise the test components Overlays get the same translucency and outline every other component gets I think im happy with how the lists look, finally the option selectors are really really hot!!! The first page I have remade is the About view, which shows this badge if you are on localhost lol i also had to move the contributors up to the server instead of hardcoding them so that both website and app can see it And a really nice little animated gradient thingy for the about view!!"}, {"post_id": 51517, "ts": "2026-08-21T08:53:31Z", "hours": 3.9036, "text": "I have pretty much finished the components, I’m going to now go and add the other shared components and improve them too. then im gonna go through the css files and clear anything that is unused or overcomplicated, and then i can start remaking the website!"}, {"post_id": 51022, "ts": "2026-08-20T14:43:48Z", "hours": 7.9519, "text": "So the previous UI was really ugly, to be honest, so i decided I am oing to scrap half of the design and completely unstyle the entire app while making everything as standardised as possible, by trying to only use reused components as much as possible. So I spent all today stripping out components I didn’t need, then take the surviving components and adjusting them to my use case and making then look as nice as I can. alert dialogs drawers buttons lists section cards switches I have also decided to stop using tailwind because its quite simply messy and much more confusing than just moduled css, so ye"}, {"post_id": 50337, "ts": "2026-08-19T14:34:49Z", "hours": 5.8117, "text": "I’m still working on making the UI look much better, and I’m still figuring out some website stuff like how i should wire up the sidebar tabs as well as having like a nice homepage to advertise everything the app does, which will be a really fun sub-project. Turns out making nice looking lists in react is much harder than it looks, as shown below 😭 one problem is that each symbol has a different aspect ratio so i dont even know how to fit them nicely And unlike swiftui, its raelly raelly hard to stay consistent in your css and to keep using the ui tokens instead of making custom css everywhere. it looks like the website is gonna be harder than the app to make after all 😔 this classes card though, for example, i think its pretty much almost done. i might need a few more borders to make it look glassy and stuff but it looks exactly like the ios version, which is the end goal! And I added the animations to the classes card, again exactly like the iphone app. i also got a vscode extension that shows you all of your unused css classes, i highly recommend getting one and purging your codebase!"}, {"post_id": 50037, "ts": "2026-08-19T02:03:20Z", "hours": 11.0747, "text": "So I’ve made the first version of the website, it’s really insanely buggy and broken, but the ui is there. so have the html good but no i need to really tweak the css to make it look nice, apple-style. i also need to figure out how to make loading states look nice, since unlike the the swiftui app, i can’t cache anything to not show loading state. in the plus side i dont have to deal with offline state, though. the sidebar and the toolbar are finished, and look really nice. the sidebar has an effect (from ipados) that basically reflects the content in a subtle blurred way, to make it feel like glass while not actually rendering anything expensive. The toolbar is just glass buttons + a black fade effect + progressives blur, also tuned to look like ipados. the icon in the sidebar is pretty ugly honestly so i need to replace that with the non-bordered icon. The other problem i am dealing with is that we are planning a complete redesign of the entire swiftui app, and obviously that has to propagate to the website, so any work i do now is kinda gonna be half wasted, depending on what the redesign actually looks like."}, {"post_id": 47872, "ts": "2026-08-16T03:56:44Z", "hours": 0.5908, "text": "And now it scales up and down and stuff!!! I still can’t believe this is just html and css and js 😭 Theres so many parameters to tweak to make it feel right, its so finicky And depending on the size of the glass, you have to change the numbers, its kinda confusing honestly"}, {"post_id": 47804, "ts": "2026-08-16T00:37:23Z", "hours": 0.8556, "text": "Its nice and squishy now! It uses gsap for this as well gsap is a great framework ngl"}, {"post_id": 47523, "ts": "2026-08-15T14:19:10Z", "hours": 4.8103, "text": "Hehehehe I’ve got a working version of liquid glass It uses gsap, which is nice the second image is an earlier version 😭"}, {"post_id": 47363, "ts": "2026-08-15T08:10:22Z", "hours": 1.1444, "text": "The website is alive! I got a screenshot of an iOS26 sidebar, and i am copying it, as you can see. looks nice i think"}, {"post_id": 47332, "ts": "2026-08-15T06:41:25Z", "hours": 2.6325, "text": "Ok so after a bunch of wrestling with nginx and bun and next.js, i have added the website! its at https://timetable.adonis.pt/ and the current api has been moved to https://timetable.adonis.pt/api Its the usual next.js thing. and it uses bun. my design idea for this is to look like its an ipad app, essentially, and im going to see exactly how far i can take the mimicking, maybe i can even add liquid glass to the web 💀 So yeah no more app building, now its website! It’s gonna be so much easier as well because I aleady have the backend done and tested, so this should be all design which will be really fun."}, {"post_id": 46919, "ts": "2026-08-14T13:55:04Z", "hours": 0.3047, "text": "new icons. the old one that now supports light mode was kinda ugly."}, {"post_id": 46909, "ts": "2026-08-14T13:32:29Z", "hours": 7.6422, "text": "A somewhat interesting devlog this time. I spend a good 2 hours just trying to make live activities work. the miserable part is that they were already working before 😭 I dont even know what I did but it broke. And while i was trying to make a debug button to start a live activity, yeah it just wasn’t working. all kinds of problems with not submitting a good APNs token. and i had to like stop activities before starting new ones and stuff it was just in general really annoying. there was even more problems but its too much to say here 😔 anyway, i have started cleaning up the app. no more big features, to be honest, until i add a website for this thing!! should be really easy since the backend is clearly all done lol events can show weather for them, such as the athletics carnival i removed the ridiculous backgrounds i allowed users to choose, theres no only solid black/white and paper. more reasonable, i think. as part of my optimisation, i removed settings i found useless. haptics are now always on, and highlighting the current day is always on. profile pictures can now have their foreground colour set, like the Monogram can have its colour optimised.you can see the average for when your friends arrive to school per day, instead of in total. developer settings also got reorganised, more settings only show to developers. yet again cleaning up the app experience. the location status was a bit unreliable, if users were offline, etc, so i added multiple ways the app pushes updates to the server, and queued statuses when the device was offline. i also refined the actual radius for what counts as within 5 / 10 minutes, should be a bit better. i havent thought about people who live within 10 minutes, thats an interesting case the subject editors grid also looks nicer (still needs more improvement though the tabview now hides while scrolling, like it collapses into the corner, like apple apps! you can manually turn off sharing your status, for privacy reasons. and some more things i forgot 🥹 im so excited for this thing to actually launch!!!!!"}, {"post_id": 46297, "ts": "2026-08-13T13:01:18Z", "hours": 1.3272, "text": "I spent some time to work on this search button and its animation. idk if the video plays, but it uses apples glass effect transitions! I also made the confirmation dialogs for removing and reporting a friend better, before they just popped up in the middle of the screen, now it comes out of the menu (also found another ios27 beta bug 😐)"}, {"post_id": 46263, "ts": "2026-08-13T11:41:36Z", "hours": 2.4739, "text": "So supporting light mode calls for an icon redesign, at least just for light mode, and here they are! Though to be honest, the entire app is gonna need a redesign, because I need to rename it from Timetable, because it has expanded into doing so much more, and timetable is a bit of a boring name. finding names is so insanely annoying though, but oh well."}, {"post_id": 45744, "ts": "2026-08-12T13:04:58Z", "hours": 2.6161, "text": "I added custom backgrounds! Theres the paper backgrounds i added recently, and then the solid colours, and then also some of the really nice apple ones idk what they are called (i hope apple doesnt copyright me 😭) so yeah it applies to all backgrounds in the app i think it merges really nice with the liquid glass and blur backgrounds different views have it also shows on watch i also added an option to choose how far forward you see events. theres also even more statistics for what app version people are using!"}, {"post_id": 45684, "ts": "2026-08-12T10:26:42Z", "hours": 1.3586, "text": "You can now edit the foreground colours for your profile picture monogram i also completed light mode support for widgets"}, {"post_id": 45645, "ts": "2026-08-12T08:44:01Z", "hours": 2.0167, "text": "I added accessibility improvements, mainly like labels and tags and stuff, for use with voice over etc. this was triggered by me installing a developer process into my app which allowed me to iterate on design faster, and it depended on accessibility elements to discover each element. (the purple thing lets you tap elements and comment on them) i also tried a new background for the cards, as you can see below, its just glass and i think it looks pretty nice"}, {"post_id": 45165, "ts": "2026-08-11T14:09:40Z", "hours": 9.5667, "text": "Big update! Light mode! The app used to be dark mode only, it let me make it look much more pixel-perfect and refine colours and stuff, but its kinda obvious you cant keep the app dark mode only, its just not good. so i went through everything, adding light mode versions of paper, text, glass, etc. took me quite a bit of time because i was trying to maintain consistency while doing it, which included alot of redoing things and creating view modifiers and manually applying each one, etc i also added weatherkit, its just a single line in the today tab, but its nice. while adding light mode support, i found a really nice blur view i could add to lists, so now each lists’s background is nothing other than a blur! i also decided to make all backgrounds made out of paper, and i think it looks nice? theres also now a statistics page for deices and os versions and builds and stuff, itll be more useful later. as well as knowing when your friends arrive to school, i added the ability to know when they are within 5 or 10 mins, and to send notifications for that. average arrival also is split by day now, because people arrive to school at different times per day theres a new tab picker, which you can see int eh controls, its much more glassy than the last one, which is really really playful and stuff! i still have more work to do in terms of ui work, excluding light mode refinements, like notifications and widgets, but yeah."}, {"post_id": 43989, "ts": "2026-08-09T14:04:31Z", "hours": 1.73, "text": "I added a new devices statistics view. or more accurately, i expanded it. before, it just shows device platforms. now, it shows the os version, minor os version, and if it is a beta or not. i also added support for iOS 26 (previous builds only supported OS27 or later). this involved me just making some features not work on os26 😐 and supporting anything before OS26 would probably be legitimately impossible, so yeah not that."}, {"post_id": 43936, "ts": "2026-08-09T11:55:31Z", "hours": 1.5656, "text": "I also made some improvements to the card height for the user’s own item. before, it was just the full width. Halfway while I was working on that, my TabView suddenly froze for a straight 20 seconds every time i changed the tab. this was very weird, and the CPU shows 0% usage, so I was quite surprised. After a large round of commenting things out and seeing what broke, I found it was a single .glassEffect() that I was using for the progress marker. I have no idea how a glass effect can make an entire tabview freeze, but fine. i replaced it with a simple red colour, as shown below, with a stroke and shadow, and i think it looks fine now."}, {"post_id": 43850, "ts": "2026-08-09T08:59:50Z", "hours": 1.6619, "text": "there is a new progress background: its not a background! inspired by the app icon / ios app, the progress view is now this marker thingy which fits into the app’s theme much nicer I’ve also been tweaking the font sizing, image sizing, padding, and gaps between the items here to make sure they look good at all possible subejct names etc. i also had to fight a bit with the safe area of the view, you can see in the image below the name “bob” ends slightly above the text, took me a lot longer than expected to fix that"}, {"post_id": 43782, "ts": "2026-08-09T06:43:26Z", "hours": 7.4142, "text": "I started work on rehauling the watchOS app And I really like how it’s coming out The watch is supposed to distill down the information the user needs, so i picked the current and next period, time, and their location. all these elements are glassy and stuff, so they are clickable, and its in a tabview that scrolls between each card. The first tab is the week view for the user. so I spent a good 2 hours trying to make a ScrollView work, but it didnt. sometimes the views teleported, some lagged, some glitched, and it was overall insanely annoying. so I moved to a tabview, which was considerably more stable, but removed the animations I wanted. it had its own animations which were fine, but yeah. Also, fonts also reflect on the watch! the one in the screenshots below is the expanded style, which to be honest isnt that good on watch since the watch is constrained as is, but yeah. The glass timetable actually looks insane I am still thinking of how to include other content, like grades maybe, and other things, but i dont want to make it too dense and slow"}, {"post_id": 43264, "ts": "2026-08-08T12:54:21Z", "hours": 3.6083, "text": "You can now change the font! this took more work than you would expect, because i did a find on the project and saw there were like 60 references to .monospaced, and each one had to be manually upgraded to dynamically apply font. i also tried to make the rounded font expanded, but after some inspection i found it doesnt even have a .expanded variant 😐 so the options i ended up with were monospaced, rounded, and expanded. no normal font. it just looks boring at this point. below is the same screen with each option! widgets also get the fonts, and they look actually insane ngl"}, {"post_id": 43093, "ts": "2026-08-08T05:35:22Z", "hours": 2.4481, "text": "improving the friend detail view the padding is so much nicer, and the detail view also shows more info and in a better way the week subtab shows a similar timetable to the user’s own, and shows more info. and some more statistics lol"}, {"post_id": 42989, "ts": "2026-08-08T00:22:14Z", "hours": 1.9642, "text": "I decided to remove created timetables. they just don’t work anymore with the Friends concept, which makes it really annoying to adjacently share other timetables alongside having friends. its a shame, i wish it could have worked, maybe ill add it again later. oh well. im still just combing through the app and fixing all the little things i see: grade tracker gets a next item in the top for the top 4 subjects, which is important for atar. improved the friend detail view a bit better, because the old one had not enough information and was displaying badly.added more statistics to administration view cos its fun lol the tag selector view was improved, looks nicer and is a tiny bit more legible nowi changed the grade tracker weighting from semester to year. apparently thats the norm more friend detail view improvements"}, {"post_id": 42669, "ts": "2026-08-07T14:52:24Z", "hours": 2.3131, "text": "Grade tracker!!! I know this is a very cliche topic but I had to implement this because it integrates so seamlessly with the app for example, it already knows your subjects (duh) and when you input the date of your assessment, it also knows which period of the day that is, because it knows your subjects! (duh) I also added ATAR, sthe user can set goals and stuff for what they want to achieve."}, {"post_id": 42589, "ts": "2026-08-07T12:33:01Z", "hours": 1.0975, "text": "some ui improvements (that weird box in the account view is Metal debug overlay, not my app)"}, {"post_id": 42549, "ts": "2026-08-07T11:27:09Z", "hours": 5.165, "text": "lots of little things instead of one big feature: i used to send emails, and i reached limits on the email provider so i had to move to only sending notifications, like device notifications. i still need an alternative, im looking through options now there used to be different settings view between iPhone and iPad, so i consolidated them into one view.you can now see your friend’s status as on or off campus. this uses location to check when you reach school or leave. this also allows some cool statistics like average school arrival time!there is better moderation, it shows in the admins view and lets the admin block or do nothing about the account. it will be expanded later to have more features and actions and stuff you can request to change your friends-since tag, also approved by admin.i deleted all (most) references to #if os(macOS) , since there is no more macOS build, its just iPad running on mac. small ui improvements: added search to some more administration views tapping an existing photo pro allows crop the tabview gets tab transitions, like the ones iOS 26 had (that ios27 removed 😡)year-level tags are separated from other tags expanded statistics!added archived events - events in the past - plus an option to automatically delete old events added a button to reset tips, since the app is getting more and more complicated the onboarding is less condensed, when that permission is first needed, its permission sheet request shows.more stuff gets cached in Defaults, making it more offline-safe.and some toolbar and blur and navigation title stuff."}, {"post_id": 41948, "ts": "2026-08-06T14:06:53Z", "hours": 1.2208, "text": "user account data now has highlighted rows for faster navigation user reports look much better, as well as friends-since requests reporting or sending feedback sends notifications instead of emails, now"}, {"post_id": 41911, "ts": "2026-08-06T12:53:26Z", "hours": 4.0961, "text": "Few things! Adminsitration gets new items for reported users and freinds-since requests sections in adminstration statistics for number of users, etc you can now see your status and other people’s status, like on or off campus new page that asks for location access ofc (ill move it into the onboarding later improved the add a friend sheet admins get emails for reported users, etc"}, {"post_id": 41764, "ts": "2026-08-06T04:50:27Z", "hours": 8.5058, "text": "I finished the refactoring for now, to make the app multi platform. So then i did some more brainstorming and I have consolidated what is the next few features I need to do tips, to tell the user about features the app has they sound easy but each tip needs rules and parameters and all kinds of obscure annoying things, so its going to be harder than it looks my first tip shown below An indicator next to each friend about their status, which is going to take the user’s location, taken in the background, to tell if they are on campus or off campus So from this you can tell when a user arrives at school or if they are sick iOS provides a function that will call my app, from the background, every time the user crosses a specific map polygon (The school). so i dont even need to do any map processing, my app just gets called every time the device goes in or out of school! plus i can add cool related features like the user’s average arrival time to school, which will be pretty cool!"}, {"post_id": 40724, "ts": "2026-08-04T13:16:45Z", "hours": 3.6128, "text": "Still just refactoring and remaking the app. i decided to remove OS 26 compatibility, because there is just too many APIs and stuff the images below are some stuff I’ve been refining: dragging friends around sideays iphone support (same thing as macOS + iPadOS) but I’ve decided now to not work on macOS (which is just iPadOS) and ipad until i perfect iphone and watch. should be fun!"}, {"post_id": 40093, "ts": "2026-08-03T14:09:54Z", "hours": 0.6797, "text": "its getting there! mac catalyst is definitely better than trying to make native macOS work. swiftui isnt really making it any better, its really really restrictive in terms of how i can structure my app. like for example that right column, has so many glitches that i cant really find solutions to because the bugs aren’t in my code, its infuriating."}, {"post_id": 40069, "ts": "2026-08-03T13:17:55Z", "hours": 1.1419, "text": "working with macOS is infuriating me, so i decided im going to make the macos app actually be mac catalyst, so its technically just running an ipad app. which makes sense. still needs alot more work, this refactor is proving very very annoying"}, {"post_id": 40036, "ts": "2026-08-03T11:53:01Z", "hours": 1.3019, "text": "first version of timetable for macos 😭 its really ugly and lwk broken. so im gonna spend the next few hours fixing this incredibly “interesting” UI."}, {"post_id": 39979, "ts": "2026-08-03T10:13:36Z", "hours": 3.41, "text": "So so far up to now, I have completely neglected everything other than iPhone. i needed this so that i could focus on making iphone as seamless and intuitive and possible, and to push features faster. so now i have to go and basically remove all of the non-iPhone code and replace it with iphone code, and then try to make that work multiplatform. so i decided iphone is going to remain as a tabview, for now at least, but ipados, macos, and big iphones can use a navigation split view, shown below. so a sidebar and main view and an inspector on the right sometimes."}, {"post_id": 39467, "ts": "2026-08-02T13:08:27Z", "hours": 0.6319, "text": "I checked the localisation and it went down to 25%, so I went and pushed that back up to 100%. and the friend detail view has been improved a bit more"}, {"post_id": 39451, "ts": "2026-08-02T12:29:09Z", "hours": 0.3811, "text": "before and after some small ui improvements!!"}, {"post_id": 39440, "ts": "2026-08-02T12:06:26Z", "hours": 0.6767, "text": "i just read an article that said @Environment(\\.dismiss) is bad for performance dismiss() is a very simple and fast way to make a sheet or other modal view dismiss , but because its so simple and dynamic, that introduces lots of bugs apparently. so I had to go through all the sheets and this time replace dismiss() with better state management. i hope ill notice the performance improvements!"}, {"post_id": 39417, "ts": "2026-08-02T11:25:42Z", "hours": 1.5344, "text": "some people were saying that it was really annoying that you could drag anywhere in a sheet to dismiss the sheet, you would be halfway through something and then you have to restart. so i went through all the sheets in the app and checked if they needed to remove this swiping. luckily it only needed one modifier per sheet. also, more tester feedback was that i shouldnt have sections for tags, so yeah i did that. also, now that there is a concept known as friends, instead of just shared timetables, i removed the option to allow people to have their timetables searched publicly. i havent figured out what i want for specific created timetables, i might lwk have to just remove that also users now have to fill in what year group they are when onboarding. for tags."}, {"post_id": 39252, "ts": "2026-08-02T03:22:29Z", "hours": 3.0194, "text": "friends detail view shows a bit more content, and is redesigned for more paper you can reorder the badges around now for priority when they show in their overlay event tags editor looks a bit nicer plus, users can edit their year group after signing in."}, {"post_id": 38922, "ts": "2026-08-01T14:51:06Z", "hours": 2.6803, "text": "So the header in settings now reflects with your pfp colours for the profile editor, i made it now scrolling so that you could fit in all of the various options, like animation speed and noise and stuff. when you click on a class in today view, it shows some more details about the class like teacher and location. friends view also looks a bit nicer, both the list view and the detail view."}, {"post_id": 38829, "ts": "2026-08-01T12:04:02Z", "hours": 1.9464, "text": "Given the theme of this app, paper, widgets now get paper too! settings for profiles has been updated too you can now select black → white in the colour selector. friend detail view still kinda looks a bit empty and bland, im not quite sure how to make it feel alive"}, {"post_id": 38704, "ts": "2026-08-01T07:32:35Z", "hours": 4.1875, "text": "you can add special badges to people now, for like early birds or something idk. the profile picutre bakground has been upgraded a bit, but im going to have to fork the repo and adjust it myself, its currently not looking like a gradient but a single noisy colour, im gonna fix that."}, {"post_id": 38184, "ts": "2026-07-31T13:32:47Z", "hours": 0.5325, "text": "The bottom colour grid is concentric to the device!!! although making the white outlines also behave nicely is proving really really hard, as you can see below"}, {"post_id": 38170, "ts": "2026-07-31T13:00:49Z", "hours": 3.5731, "text": "I’ve been busy remaking the profile editor, its coming together really nicely. that profile picture at the top is designed so that lets the other components take up their space, and then the pfp takes up the rest of the space. this allows the same view to not scroll while working on different phones and text sizes etc. and the background is animated!!!"}, {"post_id": 37968, "ts": "2026-07-31T01:17:27Z", "hours": 5.3656, "text": "I made this widget, which is kinda like a summary widget for the user. it requires this large widget size to fit everything, and its goign to be more dynamic than the other widget which always show the same layout. i haven’t thought exactly how i’m going to do it though, below is a rough first version."}, {"post_id": 37025, "ts": "2026-07-29T14:32:52Z", "hours": 1.9747, "text": "i added a section in teh administration to be able to turn off the server for everyone except for me, so that i can maintain the server and test it. and also a section to manage other admins."}, {"post_id": 36962, "ts": "2026-07-29T11:55:40Z", "hours": 7.3492, "text": "so me and my friend did some more brainstorming focussing on the new friends tab, and how friend accounts work, and profiles and pfps etc. we also aggregated a list of bugs and UI glitches in the app that still need fixing. the current first version is (moderately) broken 😭"}, {"post_id": 35775, "ts": "2026-07-27T12:45:52Z", "hours": 1.9714, "text": "Me and my friend did a bit of brainstorming, to get ideas on how to improve the app UI, UX and future features. cos we are planning a future release hopefully. so we gained a good idea of consolidating friends into a more clear friends tab, combingin the currently spread-around-everywhere friends stuff."}, {"post_id": 35475, "ts": "2026-07-26T22:47:13Z", "hours": 2.4061, "text": "I made some UX adjsutments in the settings app, added some images, reordered haptics, etc the planner sub-tab has been rehauled, and shows items chronologically instead of in sections, which i thought was more intuitive. it still needs much more thought though, im not sure how to space them out since some gaps are months long."}, {"post_id": 35175, "ts": "2026-07-26T13:01:49Z", "hours": 2.2025, "text": "Theres now brown and white paper combined. its an interesting ui concept, makes no sense in real life, but i think it looks nonetheless! it definitely creates an app theme, regardless of if this theme looks good or not…"}, {"post_id": 35092, "ts": "2026-07-26T09:28:27Z", "hours": 4.1481, "text": "As usual, I did a very assorted bunch of things: new admin tab so that i can change stuff without having to go onto my mac and hardcode stuff today view looks like paper - reminscient of the app icon! new about view the popover for subject details is smaller, removing bloat and a bunch of server improvements due to all of my users finding bugs and stuff!"}, {"post_id": 34919, "ts": "2026-07-26T00:43:54Z", "hours": 4.7894, "text": "I have expanded the home tab!! Theres three tabs at the top, today, week, and upcoming. week is what it already was upcoming shows term dates, no school days, school events, and also the users own personal events they make. the today view is a bit ugly but its sort of there! there also an admin page now, so that i dont have to hardcode term dates etc, i can just send them as api requests (for admin accounts only lol)"}, {"post_id": 34560, "ts": "2026-07-25T11:50:05Z", "hours": 0.755, "text": "Message extension got improved, it now checks if you have enabled sharing before allowing you to even sahre it, and tells"}, {"post_id": 34551, "ts": "2026-07-25T11:04:40Z", "hours": 0.5589, "text": "I’m adding countdowns everywhere, even when school is out, so that you can count the hours until your next period"}, {"post_id": 34537, "ts": "2026-07-25T10:29:10Z", "hours": 0.6072, "text": "This is currently the message extension ui. kinda ugly. that needs fixing I also updated the created timetables detail view, and (ignore the screenshot) removes the save button cos no one is going to remember to press save when they change details, so this should save some frustration."}, {"post_id": 34523, "ts": "2026-07-25T09:48:04Z", "hours": 1.6383, "text": "I improved the UI for this view, to better show classroom and teacher labels. I also renamed “Authored” to “Created”, apparently its better copy, according to my friend. The settings got cleaned up a bit, and importing from calendar again needs confirmation"}, {"post_id": 34495, "ts": "2026-07-25T08:06:40Z", "hours": 1.9119, "text": "I found an xcode bug, something to do with compilation errors for incorrect architecture, i dont get it but i gave apple feedback."}, {"post_id": 34418, "ts": "2026-07-25T03:27:42Z", "hours": 0.5558, "text": "So I made a few more adjustments like removing the APNs registration page from onboarding to make onboarding even more seamless Not important though. I discovered a really annoying problem: When I try to add iPad support, build fails because its trying to embed the watch app which obviously doesnt work on ipad. and xcode isnt letting me fix that. 😐"}, {"post_id": 34073, "ts": "2026-07-24T15:06:09Z", "hours": 4.9253, "text": "I made some UI rehauls again lol Current day receives theis blur effect which kinda looks like real light bouncing inside a box under the current day The accent colour of the app is now brown, as I am trying to make the app feel more like paper, which will become more obvious as i later add paper elements and views inside the app. My last update released a new account backend, which meant some users were not able to log in, so i decided to nuke the database and reset everything 💀 but anyway it worked and i upgraded the server to be better at handling this The sheet to add a shared timetable is improved, with blur effects and stuff, and that tiemtable preview has gotten much better it was pretty bad before ngl"}, {"post_id": 33492, "ts": "2026-07-23T14:13:01Z", "hours": 6.9467, "text": "I did a bunch of things: current day highlight in ios improve the notification early sending, to allow users to send notifications at multiple offsets remake the ui for share timetable sheet also the ui for the link customisation, tinted mint for whatever reason sharing links is now a URL, which prompts you to open the app but uses decently ugly html, ill fix later. New icon for apple watch that is optimised for the smaller display size (just made the components bigger and removed some duplicate elements added some mroe developer items at the bottom, doesnt serve much purpose just looks cool lol i removed the status badges that show success, cos i thought they would annoy the user with too many success alerts, and success when you are toggling settings doesnt really need alerts, so yeah. i also hit a bug where notifications would send twice, i had to improve the apns token system to not duplicate tokens for a device. on startup the app shows “restoring account…” every time, so i had to cache the profile data to make it stay signed in until explicitly signed out. its kinda hard to see in the screenshot but there is progressivew blur at the bottom and top, looks nice"}, {"post_id": 32346, "ts": "2026-07-21T13:36:10Z", "hours": 3.2925, "text": "I had a bug where the device could receive 2 notifications and live activities for each device, so I had to remake the APNs (apple push notification service) token management. I also added a highlight around the current day, with the setting to disable it. i thought a stroke was better than a fill because its less overwhelming and doesn’t break the ui style."}, {"post_id": 32261, "ts": "2026-07-21T10:07:38Z", "hours": 2.5917, "text": "😍"}, {"post_id": 31757, "ts": "2026-07-20T12:16:31Z", "hours": 0.9472, "text": "As you saw before the onboarding UI was a bit broken, so I went through and fixed it up and also trimmed down how many pgaes it has. Those bottom buttons aren’t concentric for some reason, even though I am using the built-in toolbar API, so I can’t fix it. Oh well. And it’s done to 8 pages, from 13. I still have som non-UI bugs to fix."}, {"post_id": 31728, "ts": "2026-07-20T11:15:51Z", "hours": 3.0553, "text": "Updated splash screen Notificaitons now have threads (each school day is a thread) macos window size animation fixed (the macos window resizes depending on the current state of the app, like currently selected tab etc. fixed some bugs in live activities and server authentication"}, {"post_id": 31613, "ts": "2026-07-20T04:58:28Z", "hours": 2.3833, "text": "Fixed some server bugs, a user reported getting “forbidden” status messages, turns out I forgot to migrate the database 😐 And other UI refinements: Tab bar uses monospace font version and build in settings feedback sheet"}, {"post_id": 31570, "ts": "2026-07-20T02:25:41Z", "hours": 0.5333, "text": "Plus a version for debug builds, I think they came out really nice!!"}, {"post_id": 31548, "ts": "2026-07-20T01:23:34Z", "hours": 0.4489, "text": "I think this is pretty much it."}, {"post_id": 31538, "ts": "2026-07-20T00:55:26Z", "hours": 0.7164, "text": "I think I’m getting there"}, {"post_id": 31518, "ts": "2026-07-20T00:10:10Z", "hours": 0.2719, "text": "I think I’ve locked in to this one. Now I need to figure out what to actually put on the papar, im thinking it has to be a kind of simplifed version of the existing main UI of my app. something kinda like a calendar schedule"}, {"post_id": 31513, "ts": "2026-07-19T23:53:55Z", "hours": 0.6131, "text": "So many variants! and idk which one is best"}, {"post_id": 31504, "ts": "2026-07-19T23:17:08Z", "hours": 2.4258, "text": "Many many iterations later… I’m leaning towards that paper one, it looks really tasteful i think. im not sure what to put on the paper though"}, {"post_id": 31176, "ts": "2026-07-19T11:22:39Z", "hours": 0.635, "text": "I think they are coming along really nicely!!!! The watchOS version has bigger title text and less handwriting rows cos its a smaller display size, i really like this 😃 the refraction effects 👌"}, {"post_id": 31171, "ts": "2026-07-19T10:43:22Z", "hours": 0.2894, "text": "I think it’s looking preetty good so far"}, {"post_id": 31156, "ts": "2026-07-19T10:22:03Z", "hours": 0.3833, "text": "More experiments, cos the previous multicolour outline was kinda ugly, now i’m thinking of adding the fake handwriting instead, it might look nice"}, {"post_id": 31145, "ts": "2026-07-19T09:51:42Z", "hours": 6.1353, "text": "I needed a new design system for my app, currently it was just a font and thats about it. Below are some experimental app icons I’ve been tweaking in sigma, they are made out of “paper” and represent a new theme I could use, which is literal paper as the design language. I think it could merge with Liquid Glass really nicely if done properly. Otherwise, other improvements: New App Intents for Apple Intelligence Allow users to set a custom share link URL, for example timetable.adonis.pt/sharedtimetable/adon’s_timetable More server tests + server improvements due to finding bugs in tests"}, {"post_id": 30567, "ts": "2026-07-18T07:42:48Z", "hours": 0.7647, "text": "I have also decided to remove Apple wallet integration, it just kinda got too messy. so im now going to revert (yes, revert 😭) back to an iMessage extension that lets you share timetables with a link. it fixes some annoying things that wallet integration has, like syncing etc. I can even allow custom link urls for a shared timetable!"}, {"post_id": 30552, "ts": "2026-07-18T06:53:52Z", "hours": 4.8108, "text": "I got carried away, since right now I am just going through and fixing the feedback my beta users gave me, starting with these: improving the onboarding flow to decrease the amount of pages, and condense some other pages, since testers said there were too many. Upgrade the server so that it only allows iOS to make changes to anything, since watchos and ipados and macos can only view, not edit. i added some tests, using codex, on the server. I’m getting tired of manually debugging every single problem I find by hand, I just make tests and its a much easier way of guaranteeing your server works perfectly. the client app is going to be much harder to add tests to, though. and more other random stuff I found and UI fixes etc. The screenshots are some broken UI stuff I found, I can’t really show you server bugs other than these error alerts. Going good so far though, can’t wait to release this as a v3!"}, {"post_id": 30017, "ts": "2026-07-17T08:18:20Z", "hours": 1.2478, "text": "After releasing v2 testflight, my friends pointed out a very large amounts of bugs in the app 😭 so I am now just trying to fix everything they pointed out. I’m pretty sure the server doesn’t have any issues, so at least that’s good. First bug is this bottom bar looks horrendous, This was fine for me cos I set my dynamic text size to small 😭"}, {"post_id": 28834, "ts": "2026-07-15T10:39:28Z", "hours": 2.2433, "text": "I made some final refinements to make sure account management on macOS works, so that my users can actually use the app, and then some other UI refinements, mainly for settings. there are a bunch of weird things i am yet to fix, but im really tired and just want to get this app out, so ill fix them later."}, {"post_id": 26526, "ts": "2026-07-11T11:56:12Z", "hours": 0.4547, "text": "I added some more pages to the onboarding, since that’s the only way I can show users how the app works cos it ngl is kinda obscure. i also added a report feedback or bug button, which needs some ui adjustments bruh"}, {"post_id": 26359, "ts": "2026-07-11T03:14:52Z", "hours": 1.1214, "text": "I can’t really show you haptics but i added haptics to buttons and the status badges. not much to say honestly. theres a toggle in settings to turn that on and off."}, {"post_id": 25978, "ts": "2026-07-10T14:57:41Z", "hours": 0.8503, "text": "I;m nearly read to release version 2 of the app, so i made a list of final tweaks and little improvements to make it as best I can, i think i can release it in a few days."}, {"post_id": 25832, "ts": "2026-07-10T09:47:11Z", "hours": 3.5725, "text": "I improved the friends subjects widgets with concentric corners and stuff."}, {"post_id": 24646, "ts": "2026-07-08T11:25:32Z", "hours": 2.6925, "text": "I think I have built out pretty much all of the projects, but i need to fix the abundance of bugs and problems that i have. the first one was fixing a problem with server syncing, and making watch depend on signing in on the phone, not by itself."}, {"post_id": 23437, "ts": "2026-07-06T12:20:38Z", "hours": 1.6219, "text": "I refined the live activities (that background is for recess and lunch, even though this preview text says before school)"}, {"post_id": 23389, "ts": "2026-07-06T09:53:29Z", "hours": 8.7292, "text": "I added live activities, although they are currently kinda ugly and need much improvement. I also made the watch app independent, because it doesnt need the iphone much really, it can just contact the server. i still have more work in making the server work better and stop giving me random errors, but yeah."}, {"post_id": 22056, "ts": "2026-07-04T09:37:57Z", "hours": 2.8419, "text": "In the onboarding I added pages to teach the user the features of the app, but I havent finished it yet. it needs a few more pages and refinement for smalelr phone screens"}, {"post_id": 21441, "ts": "2026-07-03T12:12:36Z", "hours": 6.5136, "text": "I have added an onboarding view that i really like, its very colourful and stuff. i also improved the server to be able to send notifications to users, to tell them when their next class is."}, {"post_id": 20474, "ts": "2026-07-02T02:23:36Z", "hours": 3.1183, "text": "I added notifications to the app, so that people can receive information in the form of notifications as well as live activities and app intents and widgets. I also improved the share pass button in the prominent tab bar, so that you see this sheet to select what pass you want to share, not just the user’s own timetable."}, {"post_id": 19907, "ts": "2026-07-01T10:45:28Z", "hours": 0.4294, "text": "Much better blur, although the server is taking a full 2.5 seconds to send back the pass, and i need to reduce that as much as possible"}, {"post_id": 19874, "ts": "2026-07-01T09:07:49Z", "hours": 0.5289, "text": "The timetable has some shadow behind it. I wanted to make the card HDR, but after a lot of experimenting i found apple doesn’t let you use hdr in your app like this, so i had to instead do this shadow 😐"}, {"post_id": 19839, "ts": "2026-07-01T07:27:59Z", "hours": 5.4344, "text": "I finished the search view, and i spent a very long time on perfecting some visual animations and stuff. when you click on a search result it separately animates the title in. also, before you search anything, i thought instead of showing most downloaded timetables or something i show this really squishy and fun pokemon-style timetable wallet pass. the settings view has also been improved a bit, to make some settings more clear, but i still need to refine it alot further to get it working really nicely."}, {"post_id": 19231, "ts": "2026-06-30T14:26:57Z", "hours": 3.5647, "text": "I did some debugging and made quite a lot more endpoints, I think I’m ready to move on to making the app."}, {"post_id": 18340, "ts": "2026-06-29T13:38:09Z", "hours": 5.9711, "text": "It took quite some time, but i got some really nice looking status badges! I’m really proud of how they came out, they look very juicy, and i cant show it here but i promise its very touchable and squishy and animated! 🥰"}, {"post_id": 17491, "ts": "2026-06-28T09:18:06Z", "hours": 1.3717, "text": "I’ve built a few endpoints and documented them in rapidapi, ready to import into the client app."}, {"post_id": 17396, "ts": "2026-06-28T04:54:23Z", "hours": 2.2958, "text": "I finally got the server working! took a really long time to get https working though, nginx was impressively difficult"}, {"post_id": 16990, "ts": "2026-06-27T15:55:13Z", "hours": 3.0039, "text": "I have started building the server, using swift vapor. i chose vapor because it is written with swift, like my project, which made it easier to share code between the two files."}, {"post_id": 16274, "ts": "2026-06-26T13:42:03Z", "hours": 4.8597, "text": "Xcode seems to have become extremely broken or something, i spent the last 4 hours trying to make my widget work but Xcode kept erroring out and eating memory swap, and now i have some trouble with making the imported timetables actually show up in the widgets i already made 😡"}, {"post_id": 15592, "ts": "2026-06-25T11:12:59Z", "hours": 0.6642, "text": "I changed the blur effect to this, which i think is much better, because it has less blur, and doesnt add an ugly grey tint, so black background stays black background."}, {"post_id": 15058, "ts": "2026-06-24T13:45:05Z", "hours": 0.5081, "text": "I added this blur effect behind the share sheet, and I think it looks really nice. I had to import a package to get a blur this clear"}, {"post_id": 15044, "ts": "2026-06-24T13:04:35Z", "hours": 1.7442, "text": "I added a share button in the bottom left, which allows the user to share their timetable in one press, using the .prominent Tab style so that it looks seperate from the other tabs while still looking consistent."}, {"post_id": 13120, "ts": "2026-06-21T13:40:22Z", "hours": 1.0011, "text": "So added the ability to share timetables using apple wallet, along with sending them using messages, i think that background will need to get fixed for readability, but otherwise, i like it alot."}, {"post_id": 13066, "ts": "2026-06-21T11:31:59Z", "hours": 3.4256, "text": "I added some App Intents, below is my current subject intent, and also a list of received timetables intent. It took a lot longer than expected because the app intents framework was quite confusing to get working, but i got a nice UI in the end."}, {"post_id": 12370, "ts": "2026-06-20T05:56:30Z", "hours": 1.4289, "text": "I upgraded the watch views, like making the progress rectangle rounded, and this very colourful background for when its recess and lunch"}, {"post_id": 11882, "ts": "2026-06-19T11:15:08Z", "hours": 2.4344, "text": "I updated the background of the window, including in light mode, and I also remade the icon. The settings also looks much better than it was before, and I made a nice window animation for when you click a slot to see what your friends have."}, {"post_id": 9773, "ts": "2026-06-16T06:48:43Z", "hours": 1.3667, "text": "I made some refinements to the watchOS and iOS app, including design and performance."}, {"post_id": 9217, "ts": "2026-06-15T14:09:02Z", "hours": 0.8633, "text": "I made some design adjustments to the macOS app, giving it a blur background. Also, the weekly shedule widget has had its corner radiuses and colours adjusted to be less harsh and look better."}, {"post_id": 9192, "ts": "2026-06-15T13:10:48Z", "hours": 0.2592, "text": "I added some buttons and refined the UI of settings view"}, {"post_id": 9182, "ts": "2026-06-15T12:32:38Z", "hours": 0.5969, "text": "I continued to refine the design of the macOS widget, and I really like it now."}, {"post_id": 9098, "ts": "2026-06-15T06:29:44Z", "hours": 3.9675, "text": "I fixed the widget extension problem by making two widget extensions, one for watch and one for other platforms, and made them use identical code. And then I refined the widget design for macOS and iOS and i think they look really nice now."}, {"post_id": 7893, "ts": "2026-06-13T05:18:30Z", "hours": 0.5119, "text": "I added support for these widgets from only watch to iphone and ipad and macOS, and currently they are ugly and unrefined, so I’m going to fix them now."}, {"post_id": 7438, "ts": "2026-06-12T11:50:09Z", "hours": 3.1881, "text": "I ported the app over to macOS, which was harder than I thought because there was a lot of code throughout every screen that was for connecting iphone to apple watch or some other iOS-only thing, which I had to conditionally compile out for macOS. then I needed to refine the views to work on macOS well, for example the class editor sheet used a sidebar instead of the scrolling tabview on iOS. There’s still more work to do to refine it more and get CloudKit working so that the timetable syncs across devices."}, {"post_id": 6885, "ts": "2026-06-11T15:22:19Z", "hours": 2.7783, "text": "I added these views to the watch, so you can see how much time is left in a session for yourself, and also for others. i also refined the timetable view to not use so much glass because it was lagging the TabView. The main clock uses a liquid glass background against the background progressview, and what class is next."}, {"post_id": 6796, "ts": "2026-06-11T12:06:20Z", "hours": 0.8469, "text": "I fixed the sync button visuals, it now has a blur replace transition effect. the timetable comparison view also blurs in and out when you click around"}, {"post_id": 6781, "ts": "2026-06-11T11:08:53Z", "hours": 2.6286, "text": "I moved the sync button to settings, so that the toolbar in the timetable tab could be removed. this is to make way for this new bottom half of the screen that shows other people’s timetables when you click on the slot in the top half, replacing the previous system of letting you select someone else and see their whole timetable covering your timetable. this system lets you view your own timetable and compare it with everyone else’s at a particular period. It uses a soft scroll edge effect at the bottom, and a hard effect at the top, which i think looks really nice. the second image shows the content scrolling under the timetable, which i really liked."}, {"post_id": 6247, "ts": "2026-06-10T14:30:26Z", "hours": 0.8989, "text": "I’m just refining the software a but before I start adding Siri support and improving Messages import/export flow. I fixed this comparison view, improved the class editor to show the glass nicer, and the settings toolbar has a gradient blur effect instead of hard blur, which was made the new default toolbar background style, which imo is ugly."}, {"post_id": 6208, "ts": "2026-06-10T12:53:06Z", "hours": 4.0678, "text": "I renamed PMS Timetable to Timetable, which took more time than I expected cos it was embedded in like every single file and I even had to go through binary files and just delete all the instances of “pms” . then this managed to corrupt Xcode and make it crash every time I opened it, and i had to delete some stuff to fix that. Now I’m on the OS27 version and I’m going to start fixing some UI."}]...
|
Title: Timetable by @omeriadon | Stardance
Devlog Title: Timetable by @omeriadon | Stardance
Devlogs:
I renamed PMS Timetable to Timetable, which took more time than I expected cos it was embedded in like every single file and I even had to go through binary files and just delete all the instances of “pms” . then this managed to corrupt Xcode and make it crash every time I opened it, and i had to delete some stuff to fix that. Now I’m on the OS27 version and I’m going to start fixing some UI.
I’m just refining the software a but before I start adding Siri support and improving Messages import/export flow. I fixed this comparison view, improved the class editor to show the glass nicer, and the settings toolbar has a gradient blur effect instead of hard blur, which was made the new default toolbar background style, which imo is ugly.
I moved the sync button to settings, so that the toolbar in the timetable tab could be removed. this is to make way for this new bottom half of the screen that shows other people’s timetables when you click on the slot in the top half, replacing the previous system of letting you select someone else and see their whole timetable covering your timetable. this system lets you view your own timetable and compare it with everyone else’s at a particular period. It uses a soft scroll edge effect at the bottom, and a hard effect at the top, which i think looks really nice. the second image shows the content scrolling under the timetable, which i really liked.
I fixed the sync button visuals, it now has a blur replace transition effect. the timetable comparison view also blurs in and out when you click around
I added these views to the watch, so you can see how much time is left in a session for yourself, and also for others. i also refined the timetable view to not use so much glass because it was lagging the TabView. The main clock uses a liquid glass background against the background progressview, and what class is next.
I ported the app over to macOS, which was harder than I thought because there was a lot of code throughout every screen that was for connecting iphone to apple watch or some other iOS-only thing, which I had to conditionally compile out for macOS. then I needed to refine the views to work on macOS well, for example the class editor sheet used a sidebar instead of the scrolling tabview on iOS. There’s still more work to do to refine it more and get CloudKit working so that the timetable syncs across devices.
I added support for these widgets from only watch to iphone and ipad and macOS, and currently they are ugly and unrefined, so I’m going to fix them now.
I fixed the widget extension problem by making two widget extensions, one for watch and one for other platforms, and made them use identical code. And then I refined the widget design for macOS and iOS and i think they look really nice now.
I continued to refine the design of the macOS widget, and I really like it now.
I added some buttons and refined the UI of settings view
I made some design adjustments to the macOS app, giving it a blur background. Also, the weekly shedule widget has had its corner radiuses and colours adjusted to be less harsh and look better.
I made some refinements to the watchOS and iOS app, including design and performance.
I updated the background of the window, including in light mode, and I also remade the icon. The settings also looks much better than it was before, and I made a nice window animation for when you click a slot to see what your friends have.
I upgraded the watch views, like making the progress rectangle rounded, and this very colourful background for when its recess and lunch
I added some App Intents, below is my current subject intent, and also a list of received timetables intent. It took a lot longer than expected because the app intents framework was quite confusing to get working, but i got a nice UI in the end.
So added the ability to share timetables using apple wallet, along with sending them using messages, i think that background will need to get fixed for readability, but otherwise, i like it alot.
I added a share button in the bottom left, which allows the user to share their timetable in one press, using the .prominent Tab style so that it looks seperate from the other tabs while still looking consistent.
I added this blur effect behind the share sheet, and I think it looks really nice. I had to import a package to get a blur this clear
I changed the blur effect to this, which i think is much better, because it has less blur, and doesnt add an ugly grey tint, so black background stays black background.
Xcode seems to have become extremely broken or something, i spent the last 4 hours trying to make my widget work but Xcode kept erroring out and eating memory swap, and now i have some trouble with making the imported timetables actually show up in the widgets i already made 😡
I have started building the server, using swift vapor. i chose vapor because it is written with swift, like my project, which made it easier to share code between the two files.
I finally got the server working! took a really long time to get https working though, nginx was impressively difficult
I’ve built a few endpoints and documented them in rapidapi, ready to import into the client app.
It took quite some time, but i got some really nice looking status badges! I’m really proud of how they came out, they look very juicy, and i cant show it here but i promise its very touchable and squishy and animated! 🥰
I did some debugging and made quite a lot more endpoints, I think I’m ready to move on to making the app.
I finished the search view, and i spent a very long time on perfecting some visual animations and stuff. when you click on a search result it separately animates the title in. also, before you search anything, i thought instead of showing most downloaded timetables or something i show this really squishy and fun pokemon-style timetable wallet pass. the settings view has also been improved a bit, to make some settings more clear, but i still need to refine it alot further to get it working really nicely.
The timetable has some shadow behind it. I wanted to make the card HDR, but after a lot of experimenting i found apple doesn’t let you use hdr in your app like this, so i had to instead do this shadow 😐
Much better blur, although the server is taking a full 2.5 seconds to send back the pass, and i need to reduce that as much as possible
I added notifications to the app, so that people can receive information in the form of notifications as well as live activities and app intents and widgets. I also improved the share pass button in the prominent tab bar, so that you see this sheet to select what pass you want to share, not just the user’s own timetable.
I have added an onboarding view that i really like, its very colourful and stuff. i also improved the server to be able to send notifications to users, to tell them when their next class is.
In the onboarding I added pages to teach the user the features of the app, but I havent finished it yet. it needs a few more pages and refinement for smalelr phone screens
I added live activities, although they are currently kinda ugly and need much improvement. I also made the watch app independent, because it doesnt need the iphone much really, it can just contact the server. i still have more work in making the server work better and stop giving me random errors, but yeah.
I refined the live activities (that background is for recess and lunch, even though this preview text says before school)
I think I have built out pretty much all of the projects, but i need to fix the abundance of bugs and problems that i have. the first one was fixing a problem with server syncing, and making watch depend on signing in on the phone, not by itself.
I improved the friends subjects widgets with concentric corners and stuff.
I;m nearly read to release version 2 of the app, so i made a list of final tweaks and little improvements to make it as best I can, i think i can release it in a few days.
I can’t really show you haptics but i added haptics to buttons and the status badges. not much to say honestly. theres a toggle in settings to turn that on and off.
I added some more pages to the onboarding, since that’s the only way I can show users how the app works cos it ngl is kinda obscure. i also added a report feedback or bug button, which needs some ui adjustments bruh
I made some final refinements to make sure account management on macOS works, so that my users can actually use the app, and then some other UI refinements, mainly for settings. there are a bunch of weird things i am yet to fix, but im really tired and just want to get this app out, so ill fix them later.
After releasing v2 testflight, my friends pointed out a very large amounts of bugs in the app 😭 so I am now just trying to fix everything they pointed out. I’m pretty sure the server doesn’t have any issues, so at least that’s good. First bug is this bottom bar looks horrendous, This was fine for me cos I set my dynamic text size to small 😭
I got carried away, since right now I am just going through and fixing the feedback my beta users gave me, starting with these: improving the onboarding flow to decrease the amount of pages, and condense some other pages, since testers said there were too many. Upgrade the server so that it only allows iOS to make changes to anything, since watchos and ipados and macos can only view, not edit. i added some tests, using codex, on the server. I’m getting tired of manually debugging every single problem I find by hand, I just make tests and its a much easier way of guaranteeing your server works perfectly. the client app is going to be much harder to add tests to, though. and more other random stuff I found and UI fixes etc. The screenshots are some broken UI stuff I found, I can’t really show you server bugs other than these error alerts. Going good so far though, can’t wait to release this as a v3!
I have also decided to remove Apple wallet integration, it just kinda got too messy. so im now going to revert (yes, revert 😭) back to an iMessage extension that lets you share timetables with a link. it fixes some annoying things that wallet integration has, like syncing etc. I can even allow custom link urls for a shared timetable!
I needed a new design system for my app, currently it was just a font and thats about it. Below are some experimental app icons I’ve been tweaking in sigma, they are made out of “paper” and represent a new theme I could use, which is literal paper as the design language. I think it could merge with Liquid Glass really nicely if done properly. Otherwise, other improvements: New App Intents for Apple Intelligence Allow users to set a custom share link URL, for example timetable.adonis.pt/sharedtimetable/adon’s_timetable More server tests + server improvements due to finding bugs in tests
More experiments, cos the previous multicolour outline was kinda ugly, now i’m thinking of adding the fake handwriting instead, it might look nice
I think it’s looking preetty good so far
I think they are coming along really nicely!!!! The watchOS version has bigger title text and less handwriting rows cos its a smaller display size, i really like this 😃 the refraction effects 👌
Many many iterations later… I’m leaning towards that paper one, it looks really tasteful i think. im not sure what to put on the paper though
So many variants! and idk which one is best
I think I’ve locked in to this one. Now I need to figure out what to actually put on the papar, im thinking it has to be a kind of simplifed version of the existing main UI of my app. something kinda like a calendar schedule
I think I’m getting there
I think this is pretty much it.
Plus a version for debug builds, I think they came out really nice!!
Fixed some server bugs, a user reported getting “forbidden” status messages, turns out I forgot to migrate the database 😐 And other UI refinements: Tab bar uses monospace font version and build in settings feedback sheet
Updated splash screen Notificaitons now have threads (each school day is a thread) macos window size animation fixed (the macos window resizes depending on the current state of the app, like currently selected tab etc. fixed some bugs in live activities and server authentication
As you saw before the onboarding UI was a bit broken, so I went through and fixed it up and also trimmed down how many pgaes it has. Those bottom buttons aren’t concentric for some reason, even though I am using the built-in toolbar API, so I can’t fix it. Oh well. And it’s done to 8 pages, from 13. I still have som non-UI bugs to fix.
😍
I had a bug where the device could receive 2 notifications and live activities for each device, so I had to remake the APNs (apple push notification service) token management. I also added a highlight around the current day, with the setting to disable it. i thought a stroke was better than a fill because its less overwhelming and doesn’t break the ui style.
I did a bunch of things: current day highlight in ios improve the notification early sending, to allow users to send notifications at multiple offsets remake the ui for share timetable sheet also the ui for the link customisation, tinted mint for whatever reason sharing links is now a URL, which prompts you to open the app but uses decently ugly html, ill fix later. New icon for apple watch that is optimised for the smaller display size (just made the components bigger and removed some duplicate elements added some mroe developer items at the bottom, doesnt serve much purpose just looks cool lol i removed the status badges that show success, cos i thought they would annoy the user with too many success alerts, and success when you are toggling settings doesnt really need alerts, so yeah. i also hit a bug where notifications would send twice, i had to improve the apns token system to not duplicate tokens for a device. on startup the app shows “restoring account…” every time, so i had to cache the profile data to make it stay signed in until explicitly signed out. its kinda hard to see in the screenshot but there is progressivew blur at the bottom and top, looks nice
I made some UI rehauls again lol Current day receives theis blur effect which kinda looks like real light bouncing inside a box under the current day The accent colour of the app is now brown, as I am trying to make the app feel more like paper, which will become more obvious as i later add paper elements and views inside the app. My last update released a new account backend, which meant some users were not able to log in, so i decided to nuke the database and reset everything 💀 but anyway it worked and i upgraded the server to be better at handling this The sheet to add a shared timetable is improved, with blur effects and stuff, and that tiemtable preview has gotten much better it was pretty bad before ngl
So I made a few more adjustments like removing the APNs registration page from onboarding to make onboarding even more seamless Not important though. I discovered a really annoying problem: When I try to add iPad support, build fails because its trying to embed the watch app which obviously doesnt work on ipad. and xcode isnt letting me fix that. 😐
I found an xcode bug, something to do with compilation errors for incorrect architecture, i dont get it but i gave apple feedback.
I improved the UI for this view, to better show classroom and teacher labels. I also renamed “Authored” to “Created”, apparently its better copy, according to my friend. The settings got cleaned up a bit, and importing from calendar again needs confirmation
This is currently the message extension ui. kinda ugly. that needs fixing I also updated the created timetables detail view, and (ignore the screenshot) removes the save button cos no one is going to remember to press save when they change details, so this should save some frustration.
I’m adding countdowns everywhere, even when school is out, so that you can count the hours until your next period
Message extension got improved, it now checks if you have enabled sharing before allowing you to even sahre it, and tells
I have expanded the home tab!! Theres three tabs at the top, today, week, and upcoming. week is what it already was upcoming shows term dates, no school days, school events, and also the users own personal events they make. the today view is a bit ugly but its sort of there! there also an admin page now, so that i dont have to hardcode term dates etc, i can just send them as api requests (for admin accounts only lol)
As usual, I did a very assorted bunch of things: new admin tab so that i can change stuff without having to go onto my mac and hardcode stuff today view looks like paper - reminscient of the app icon! new about view the popover for subject details is smaller, removing bloat and a bunch of server improvements due to all of my users finding bugs and stuff!
Theres now brown and white paper combined. its an interesting ui concept, makes no sense in real life, but i think it looks nonetheless! it definitely creates an app theme, regardless of if this theme looks good or not…
I made some UX adjsutments in the settings app, added some images, reordered haptics, etc the planner sub-tab has been rehauled, and shows items chronologically instead of in sections, which i thought was more intuitive. it still needs much more thought though, im not sure how to space them out since some gaps are months long.
Me and my friend did a bit of brainstorming, to get ideas on how to improve the app UI, UX and future features. cos we are planning a future release hopefully. so we gained a good idea of consolidating friends into a more clear friends tab, combingin the currently spread-around-everywhere friends stuff.
so me and my friend did some more brainstorming focussing on the new friends tab, and how friend accounts work, and profiles and pfps etc. we also aggregated a list of bugs and UI glitches in the app that still need fixing. the current first version is (moderately) broken 😭
i added a section in teh administration to be able to turn off the server for everyone except for me, so that i can maintain the server and test it. and also a section to manage other admins.
I made this widget, which is kinda like a summary widget for the user. it requires this large widget size to fit everything, and its goign to be more dynamic than the other widget which always show the same layout. i haven’t thought exactly how i’m going to do it though, below is a rough first version.
I’ve been busy remaking the profile editor, its coming together really nicely. that profile picture at the top is designed so that lets the other components take up their space, and then the pfp takes up the rest of the space. this allows the same view to not scroll while working on different phones and text sizes etc. and the background is animated!!!
The bottom colour grid is concentric to the device!!! although making the white outlines also behave nicely is proving really really hard, as you can see below
you can add special badges to people now, for like early birds or something idk. the profile picutre bakground has been upgraded a bit, but im going to have to fork the repo and adjust it myself, its currently not looking like a gradient but a single noisy colour, im gonna fix that.
Given the theme of this app, paper, widgets now get paper too! settings for profiles has been updated too you can now select black → white in the colour selector. friend detail view still kinda looks a bit empty and bland, im not quite sure how to make it feel alive
So the header in settings now reflects with your pfp colours for the profile editor, i made it now scrolling so that you could fit in all of the various options, like animation speed and noise and stuff. when you click on a class in today view, it shows some more details about the class like teacher and location. friends view also looks a bit nicer, both the list view and the detail view.
friends detail view shows a bit more content, and is redesigned for more paper you can reorder the badges around now for priority when they show in their overlay event tags editor looks a bit nicer plus, users can edit their year group after signing in.
some people were saying that it was really annoying that you could drag anywhere in a sheet to dismiss the sheet, you would be halfway through something and then you have to restart. so i went through all the sheets in the app and checked if they needed to remove this swiping. luckily it only needed one modifier per sheet. also, more tester feedback was that i shouldnt have sections for tags, so yeah i did that. also, now that there is a concept known as friends, instead of just shared timetables, i removed the option to allow people to have their timetables searched publicly. i havent figured out what i want for specific created timetables, i might lwk have to just remove that also users now have to fill in what year group they are when onboarding. for tags.
i just read an article that said @Environment(\.dismiss) is bad for performance dismiss() is a very simple and fast way to make a sheet or other modal view dismiss , but because its so simple and dynamic, that introduces lots of bugs apparently. so I had to go through all the sheets and this time replace dismiss() with better state management. i hope ill notice the performance improvements!
before and after some small ui improvements!!
I checked the localisation and it went down to 25%, so I went and pushed that back up to 100%. and the friend detail view has been improved a bit more
So so far up to now, I have completely neglected everything other than iPhone. i needed this so that i could focus on making iphone as seamless and intuitive and possible, and to push features faster. so now i have to go and basically remove all of the non-iPhone code and replace it with iphone code, and then try to make that work multiplatform. so i decided iphone is going to remain as a tabview, for now at least, but ipados, macos, and big iphones can use a navigation split view, shown below. so a sidebar and main view and an inspector on the right sometimes.
first version of timetable for macos 😭 its really ugly and lwk broken. so im gonna spend the next few hours fixing this incredibly “interesting” UI.
working with macOS is infuriating me, so i decided im going to make the macos app actually be mac catalyst, so its technically just running an ipad app. which makes sense. still needs alot more work, this refactor is proving very very annoying
its getting there! mac catalyst is definitely better than trying to make native macOS work. swiftui isnt really making it any better, its really really restrictive in terms of how i can structure my app. like for example that right column, has so many glitches that i cant really find solutions to because the bugs aren’t in my code, its infuriating.
Still just refactoring and remaking the app. i decided to remove OS 26 compatibility, because there is just too many APIs and stuff the images below are some stuff I’ve been refining: dragging friends around sideays iphone support (same thing as macOS + iPadOS) but I’ve decided now to not work on macOS (which is just iPadOS) and ipad until i perfect iphone and watch. should be fun!
I finished the refactoring for now, to make the app multi platform. So then i did some more brainstorming and I have consolidated what is the next few features I need to do tips, to tell the user about features the app has they sound easy but each tip needs rules and parameters and all kinds of obscure annoying things, so its going to be harder than it looks my first tip shown below An indicator next to each friend about their status, which is going to take the user’s location, taken in the background, to tell if they are on campus or off campus So from this you can tell when a user arrives at school or if they are sick iOS provides a function that will call my app, from the background, every time the user crosses a specific map polygon (The school). so i dont even need to do any map processing, my app just gets called every time the device goes in or out of school! plus i can add cool related features like the user’s average arrival time to school, which will be pretty cool!
Few things! Adminsitration gets new items for reported users and freinds-since requests sections in adminstration statistics for number of users, etc you can now see your status and other people’s status, like on or off campus new page that asks for location access ofc (ill move it into the onboarding later improved the add a friend sheet admins get emails for reported users, etc
user account data now has highlighted rows for faster navigation user reports look much better, as well as friends-since requests reporting or sending feedback sends notifications instead of emails, now
lots of little things instead of one big feature: i used to send emails, and i reached limits on the email provider so i had to move to only sending notifications, like device notifications. i still need an alternative, im looking through options now there used to be different settings view between iPhone and iPad, so i consolidated them into one view.you can now see your friend’s status as on or off campus. this uses location to check when you reach school or leave. this also allows some cool statistics like average school arrival time!there is better moderation, it shows in the admins view and lets the admin block or do nothing about the account. it will be expanded later to have more features and actions and stuff you can request to change your friends-since tag, also approved by admin.i deleted all (most) references to #if os(macOS) , since there is no more macOS build, its just iPad running on mac. small ui improvements: added search to some more administration views tapping an existing photo pro allows crop the tabview gets tab transitions, like the ones iOS 26 had (that ios27 removed 😡)year-level tags are separated from other tags expanded statistics!added archived events - events in the past - plus an option to automatically delete old events added a button to reset tips, since the app is getting more and more complicated the onboarding is less condensed, when that permission is first needed, its permission sheet request shows.more stuff gets cached in Defaults, making it more offline-safe.and some toolbar and blur and navigation title stuff.
some ui improvements (that weird box in the account view is Metal debug overlay, not my app)
Grade tracker!!! I know this is a very cliche topic but I had to implement this because it integrates so seamlessly with the app for example, it already knows your subjects (duh) and when you input the date of your assessment, it also knows which period of the day that is, because it knows your subjects! (duh) I also added ATAR, sthe user can set goals and stuff for what they want to achieve.
I decided to remove created timetables. they just don’t work anymore with the Friends concept, which makes it really annoying to adjacently share other timetables alongside having friends. its a shame, i wish it could have worked, maybe ill add it again later. oh well. im still just combing through the app and fixing all the little things i see: grade tracker gets a next item in the top for the top 4 subjects, which is important for atar. improved the friend detail view a bit better, because the old one had not enough information and was displaying badly.added more statistics to administration view cos its fun lol the tag selector view was improved, looks nicer and is a tiny bit more legible nowi changed the grade tracker weighting from semester to year. apparently thats the norm more friend detail view improvements
improving the friend detail view the padding is so much nicer, and the detail view also shows more info and in a better way the week subtab shows a similar timetable to the user’s own, and shows more info. and some more statistics lol
You can now change the font! this took more work than you would expect, because i did a find on the project and saw there were like 60 references to .monospaced, and each one had to be manually upgraded to dynamically apply font. i also tried to make the rounded font expanded, but after some inspection i found it doesnt even have a .expanded variant 😐 so the options i ended up with were monospaced, rounded, and expanded. no normal font. it just looks boring at this point. below is the same screen with each option! widgets also get the fonts, and they look actually insane ngl
I started work on rehauling the watchOS app And I really like how it’s coming out The watch is supposed to distill down the information the user needs, so i picked the current and next period, time, and their location. all these elements are glassy and stuff, so they are clickable, and its in a tabview that scrolls between each card. The first tab is the week view for the user. so I spent a good 2 hours trying to make a ScrollView work, but it didnt. sometimes the views teleported, some lagged, some glitched, and it was overall insanely annoying. so I moved to a tabview, which was considerably more stable, but removed the animations I wanted. it had its own animations which were fine, but yeah. Also, fonts also reflect on the watch! the one in the screenshots below is the expanded style, which to be honest isnt that good on watch since the watch is constrained as is, but yeah. The glass timetable actually looks insane I am still thinking of how to include other content, like grades maybe, and other things, but i dont want to make it too dense and slow
there is a new progress background: its not a background! inspired by the app icon / ios app, the progress view is now this marker thingy which fits into the app’s theme much nicer I’ve also been tweaking the font sizing, image sizing, padding, and gaps between the items here to make sure they look good at all possible subejct names etc. i also had to fight a bit with the safe area of the view, you can see in the image below the name “bob” ends slightly above the text, took me a lot longer than expected to fix that
I also made some improvements to the card height for the user’s own item. before, it was just the full width. Halfway while I was working on that, my TabView suddenly froze for a straight 20 seconds every time i changed the tab. this was very weird, and the CPU shows 0% usage, so I was quite surprised. After a large round of commenting things out and seeing what broke, I found it was a single .glassEffect() that I was using for the progress marker. I have no idea how a glass effect can make an entire tabview freeze, but fine. i replaced it with a simple red colour, as shown below, with a stroke and shadow, and i think it looks fine now.
I added a new devices statistics view. or more accurately, i expanded it. before, it just shows device platforms. now, it shows the os version, minor os version, and if it is a beta or not. i also added support for iOS 26 (previous builds only supported OS27 or later). this involved me just making some features not work on os26 😐 and supporting anything before OS26 would probably be legitimately impossible, so yeah not that.
Big update! Light mode! The app used to be dark mode only, it let me make it look much more pixel-perfect and refine colours and stuff, but its kinda obvious you cant keep the app dark mode only, its just not good. so i went through everything, adding light mode versions of paper, text, glass, etc. took me quite a bit of time because i was trying to maintain consistency while doing it, which included alot of redoing things and creating view modifiers and manually applying each one, etc i also added weatherkit, its just a single line in the today tab, but its nice. while adding light mode support, i found a really nice blur view i could add to lists, so now each lists’s background is nothing other than a blur! i also decided to make all backgrounds made out of paper, and i think it looks nice? theres also now a statistics page for deices and os versions and builds and stuff, itll be more useful later. as well as knowing when your friends arrive to school, i added the ability to know when they are within 5 or 10 mins, and to send notifications for that. average arrival also is split by day now, because people arrive to school at different times per day theres a new tab picker, which you can see int eh controls, its much more glassy than the last one, which is really really playful and stuff! i still have more work to do in terms of ui work, excluding light mode refinements, like notifications and widgets, but yeah.
I added accessibility improvements, mainly like labels and tags and stuff, for use with voice over etc. this was triggered by me installing a developer process into my app which allowed me to iterate on design faster, and it depended on accessibility elements to discover each element. (the purple thing lets you tap elements and comment on them) i also tried a new background for the cards, as you can see below, its just glass and i think it looks pretty nice
You can now edit the foreground colours for your profile picture monogram i also completed light mode support for widgets
I added custom backgrounds! Theres the paper backgrounds i added recently, and then the solid colours, and then also some of the really nice apple ones idk what they are called (i hope apple doesnt copyright me 😭) so yeah it applies to all backgrounds in the app i think it merges really nice with the liquid glass and blur backgrounds different views have it also shows on watch i also added an option to choose how far forward you see events. theres also even more statistics for what app version people are using!
So supporting light mode calls for an icon redesign, at least just for light mode, and here they are! Though to be honest, the entire app is gonna need a redesign, because I need to rename it from Timetable, because it has expanded into doing so much more, and timetable is a bit of a boring name. finding names is so insanely annoying though, but oh well.
I spent some time to work on this search button and its animation. idk if the video plays, but it uses apples glass effect transitions! I also made the confirmation dialogs for removing and reporting a friend better, before they just popped up in the middle of the screen, now it comes out of the menu (also found another ios27 beta bug 😐)
A somewhat interesting devlog this time. I spend a good 2 hours just trying to make live activities work. the miserable part is that they were already working before 😭 I dont even know what I did but it broke. And while i was trying to make a debug button to start a live activity, yeah it just wasn’t working. all kinds of problems with not submitting a good APNs token. and i had to like stop activities before starting new ones and stuff it was just in general really annoying. there was even more problems but its too much to say here 😔 anyway, i have started cleaning up the app. no more big features, to be honest, until i add a website for this thing!! should be really easy since the backend is clearly all done lol events can show weather for them, such as the athletics carnival i removed the ridiculous backgrounds i allowed users to choose, theres no only solid black/white and paper. more reasonable, i think. as part of my optimisation, i removed settings i found useless. haptics are now always on, and highlighting the current day is always on. profile pictures can now have their foreground colour set, like the Monogram can have its colour optimised.you can see the average for when your friends arrive to school per day, instead of in total. developer settings also got reorganised, more settings only show to developers. yet again cleaning up the app experience. the location status was a bit unreliable, if users were offline, etc, so i added multiple ways the app pushes updates to the server, and queued statuses when the device was offline. i also refined the actual radius for what counts as within 5 / 10 minutes, should be a bit better. i havent thought about people who live within 10 minutes, thats an interesting case the subject editors grid also looks nicer (still needs more improvement though the tabview now hides while scrolling, like it collapses into the corner, like apple apps! you can manually turn off sharing your status, for privacy reasons. and some more things i forgot 🥹 im so excited for this thing to actually launch!!!!!
new icons. the old one that now supports light mode was kinda ugly.
Ok so after a bunch of wrestling with nginx and bun and next.js, i have added the website! its at https://timetable.adonis.pt/ and the current api has been moved to https://timetable.adonis.pt/api Its the usual next.js thing. and it uses bun. my design idea for this is to look like its an ipad app, essentially, and im going to see exactly how far i can take the mimicking, maybe i can even add liquid glass to the web 💀 So yeah no more app building, now its website! It’s gonna be so much easier as well because I aleady have the backend done and tested, so this should be all design which will be really fun.
The website is alive! I got a screenshot of an iOS26 sidebar, and i am copying it, as you can see. looks nice i think
Hehehehe I’ve got a working version of liquid glass It uses gsap, which is nice the second image is an earlier version 😭
Its nice and squishy now! It uses gsap for this as well gsap is a great framework ngl
And now it scales up and down and stuff!!! I still can’t believe this is just html and css and js 😭 Theres so many parameters to tweak to make it feel right, its so finicky And depending on the size of the glass, you have to change the numbers, its kinda confusing honestly
So I’ve made the first version of the website, it’s really insanely buggy and broken, but the ui is there. so have the html good but no i need to really tweak the css to make it look nice, apple-style. i also need to figure out how to make loading states look nice, since unlike the the swiftui app, i can’t cache anything to not show loading state. in the plus side i dont have to deal with offline state, though. the sidebar and the toolbar are finished, and look really nice. the sidebar has an effect (from ipados) that basically reflects the content in a subtle blurred way, to make it feel like glass while not actually rendering anything expensive. The toolbar is just glass buttons + a black fade effect + progressives blur, also tuned to look like ipados. the icon in the sidebar is pretty ugly honestly so i need to replace that with the non-bordered icon. The other problem i am dealing with is that we are planning a complete redesign of the entire swiftui app, and obviously that has to propagate to the website, so any work i do now is kinda gonna be half wasted, depending on what the redesign actually looks like.
I’m still working on making the UI look much better, and I’m still figuring out some website stuff like how i should wire up the sidebar tabs as well as having like a nice homepage to advertise everything the app does, which will be a really fun sub-project. Turns out making nice looking lists in react is much harder than it looks, as shown below 😭 one problem is that each symbol has a different aspect ratio so i dont even know how to fit them nicely And unlike swiftui, its raelly raelly hard to stay consistent in your css and to keep using the ui tokens instead of making custom css everywhere. it looks like the website is gonna be harder than the app to make after all 😔 this classes card though, for example, i think its pretty much almost done. i might need a few more borders to make it look glassy and stuff but it looks exactly like the ios version, which is the end goal! And I added the animations to the classes card, again exactly like the iphone app. i also got a vscode extension that shows you all of your unused css classes, i highly recommend getting one and purging your codebase!
So the previous UI was really ugly, to be honest, so i decided I am oing to scrap half of the design and completely unstyle the entire app while making everything as standardised as possible, by trying to only use reused components as much as possible. So I spent all today stripping out components I didn’t need, then take the surviving components and adjusting them to my use case and making then look as nice as I can. alert dialogs drawers buttons lists section cards switches I have also decided to stop using tailwind because its quite simply messy and much more confusing than just moduled css, so ye
I have pretty much finished the components, I’m going to now go and add the other shared components and improve them too. then im gonna go through the css files and clear anything that is unused or overcomplicated, and then i can start remaking the website!
I think I have finished making all of the shared components I put everything inside accordions to organise the test components Overlays get the same translucency and outline every other component gets I think im happy with how the lists look, finally the option selectors are really really hot!!! The first page I have remade is the About view, which shows this badge if you are on localhost lol i also had to move the contributors up to the server instead of hardcoding them so that both website and app can see it And a really nice little animated gradient thingy for the about view!!
I have started using the shared components around the website, and its actually looking pretty nice! most importantly, these components can be changed once and work everywhere and i removed the drawers i was using everywhere, and i also made said drawers wider while i was rehauling the drawers i also kinda broke their animations and i don’t know how to fix it 😭 the whole website looks really basic now, since its obviously using now the shard unstyled components, and i was thinking about the theme and decided maybe it should be unstyled, and only the user’s own events and content etc can have colours.
I started to make the landing page, and i decided, after very much research from other landing sites I’ve seen, that the main item should be an interactive timetable, a version of the app icon. but interactive and glassy. im trying to recreate everything in css but its not looking as smooth and polished as real liquid glass does so ye. im kinda getting close though! I also added a navbar item that just is the link to actually open timetable, and when you hover it shows options to either open the app in testflight or open the web version which just redirects to /login. and its background switches to black when you start scrolling, which will make more sense later. i haven’t really planned the rest of the landing page, and i might remove this entire component if i find a good liquid glass implementation i can use, especially with bouncy animations etc. but yeah. (worst part is i might even just go change the entire app icon in a week so that kinda wastes all this time 😭😭😭)
After much trying to make glass, yet again, i failed. So now im just using blur and these edge effects, and i think it looks nice! theres even a hover eect, as shown in the second screenshot (class details show and the rectangle rotates a bit randomly)
I added a title to the lading site, but as you can see its not just any title. it uses this package called fitty to make the text size up to the full width of the page, and it does indeed look massive. and it also goes under the rectangles of the logo, so its like an apple depth effect you get on iphone lockscreens i found the website really laggy while scrolling somewhere while finishing of the main interactive icon, and i couldnt figure out why after removing everything that could have been gpu intensive (my gpu was spiking to 80% while just scrolling) so after all that my most likely theory is that the lag is just my computer and not the website (or both 😭😭) also when i made that main art, i made the border radii use px units, which made it look quite deformed on smaller screens, since the rectangle’s size is relative to screen width, whereas border radius is constant… so i went and fixed that too
I really wanted the first screen for timetable to look really really interesting and unique and instantly recognisable as Timetable, so i made the text instead of a boring white, it now has 3 really nice effects applied: A grain overlay, or noise, which in this case doesn’t make it look paper but looks nice nonetheless Its not flat white, its white at the top and goes to brown at the bottom, more noticeable when you close up. subtle but also nice The “white” isn’t even white. Its a particular white image i had a lot of difficulty in obtaining. it is the third screenshot, the “white” png. Its an .avif , and it uses some HDR-capable color space format something, which on compatible browsers make the timetable text show considerably brighter than everywhere else on your screen, which makes it really pop! i plan on using this effect in other places as well across the landing page to make it just pop a bit more. (the 4th image shows the white pixel showing as 1.25. anything above 1 is hdr.)
I did a few things in this devlog, got quite carried away frankly. So I migrated the codebase from Next.js to Tanstack. The reason was that i was seeing a lot of speed concerns, especially on the landing page. it was just lagging so much. i tried it on all my devices on all the browsers and it was there half the time. after a lot of commenting things out i just couldnt find a bug, so now i moved to tanstack. hopefully taht will remove at least some problems. in any case, i got bored of next.js and tanstack is a different framework to play with and make use of!! also, i continued the landing page by adding cards for each item. i don’t really like it right now, but i have established that i need to add these cards, if not in a different UI. The titles of each card are just image-masks, of Apple wallpapers! i went through some archive and picked out the ones i like, and applied a brightness 200% filter, and they look really nice now. after i finish the landing page im gonna work on rehauling the rest of the ui to be more intuitive and actually usable
ok so i think i have optimised it as much as i can lol tanstack clearly was a good idea, it just needed some optimisations!
Im making a 3d model of the school. this is so that i can show a whole literal map of the campus in the app, and then you can see where each user is, in 3d! i could even reexport it for the website, potentially its going to be interactive and everything
As well as migrating to Tanstack, I wanted even more speed, just for fun at this point honestly, so I decided to move to SolidJS from React. Its decently faster while looking similar to react, and it has some syntax stuff that i much prefer over react. this is basically just adding some margin for me to make bad code The end product looks identical so theres not much to show.. apart from the migration, I’ve also been designing the new landing page, which will also use the 3d model thing. the big question is figuring out how to make the 3d markers for each classroom register correctly, because i need to show a pin for each user at the right place, from swiftui, and somehow embed it into a realitykit 3d model. but im sure this use case has been done many times before so i can find something online!
Continuing the assorted improvements to the app: Fixed stacked drawers so nested drawer state updates reactively. Reworked the Friends page into shared List, ListSection, ListRow, and Card components. Preserved friend drag-and-drop ordering within the new layout. Improved timetable UX: i fixed the lesson selection in week view correctly aligned the “now” indicator in today view restricted timetable mode navigation to mobile through CSS, cos desktop already has the sidebar improved planner event styling. made the drawer compenent animate in and out, something i lost from the react -> solid migration I also added a reusable event-tag selection row with symbols and selected-state feedback.
Ships:
So I made a timetable app for my school, super-specialised and for ios, watchos, and macos. its got live activities and notifications to show you current and next subjects throughout the school day, widgets for your weekly schedule, ability to see your friends’ timetables, and server sync. and apple intelligence support!
This ship, I completely remade the app to work around accounts, and all the features that come with that I added a server, because it used to just store your timetable in your local storage and that was quite boring honestly creating a server for this has allowed me to add accounts, notifications, live activities, friends, shared events, multiple devices in the same account, and has made the website much easier to make (still in development, thats why the top devlogs are talking about the website not the app) The app now has all of this: Grades, track the score of all of your subjects notifications for each subject you have and your events etc live activity throughout each school day telling you your subjects etc sharing your location, subjects, and more with friends widgets that show your your subjects, upcoming events, and your friends’ schedules lots of administration options to manage pretty much everything, including who else is admin lol full support for siri, shortcuts, spotlight, and apple intelligence a full apple watch app btw i know 350 hours on a timetable app sounds insane (😭) but its because this project has 4 different aspects: swiftui client for iPhone, iPad, and mac swiftui client for apple watch a website client (still in development) the server that handles everything, and the database i promise it does more than just tell you your subjects 🙏...
|
1792878455.271768
|
1793742455.271768
|
|
48488
|
My very own WebOS by @behl_aditya22 | Stardance
|
behl_aditya22
|
2
|
9.0
|
26
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T08:23:20Z", "hours": 9.0, "multiplier": 2.99, "payout": 26, "blessing": "neutral", "text": "I made a meowl based os with aero Frutiger vibes, and the most challenging part was understanding the code i had to learn more and more but im proud of the memory game i made. I hope you enjoy my project it was fun making it from ideas to reality.", "repo": "https://github.com/behladitya22-debug/OS", "demo": "https://behladitya22-debug.github.io/OS/"}, {"ship_num": 2, "ts": "2026-08-17T09:15:57Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So i made a micheal jackson based os its not the best i apolgize for that its my first time so it is a basic operating system with a spinning vinyl and a small note on the legend himself. i did use ai for that matter I am new to all this. also i belive this is my mistake but i forgot to install hacktime and i only meet the bare requirement but i asure you it took me a lot of time", "repo": "https://github.com/behladitya22-debug/OS", "demo": "https://behladitya22-debug.github.io/OS/"}]...
|
[{"post_id": 53615, "ts": "202 [{"post_id": 53615, "ts": "2026-08-24T08:20:23Z", "hours": 2.1003, "text": "Meowl OS: its very aero frutiger!!!"}, {"post_id": 51496, "ts": "2026-08-21T07:48:24Z", "hours": 5.0383, "text": "a little creative browser i am working on"}, {"post_id": 49540, "ts": "2026-08-18T12:49:47Z", "hours": 0.3094, "text": "A improved colour design on the milo_os/"}, {"post_id": 49421, "ts": "2026-08-18T07:57:45Z", "hours": 1.2178, "text": "Im working on a OS for my pet cat"}, {"post_id": 48150, "ts": "2026-08-16T13:28:44Z", "hours": 0.3422, "text": "cool_os"}]...
|
Title: My very own WebOS by @behl_aditya22 | Stard Title: My very own WebOS by @behl_aditya22 | Stardance
Devlogs:
cool_os
Im working on a OS for my pet cat
A improved colour design on the milo_os/
a little creative browser i am working on
Meowl OS: its very aero frutiger!!!
Ships:
So i made a micheal jackson based os its not the best i apolgize for that its my first time so it is a basic operating system with a spinning vinyl and a small note on the legend himself. i did use ai for that matter I am new to all this. also i belive this is my mistake but i forgot to install hacktime and i only meet the bare requirement but i asure you it took me a lot of time
I made a meowl based os with aero Frutiger vibes, and the most challenging part was understanding the code i had to learn more and more but im proud of the memory game i made. I hope you enjoy my project it was fun making it from ideas to reality....
|
1793455052.5671668
|
1793541452.5671668
|
|
53450
|
Apex by @marveljesus | Stardance
|
marveljesus
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T08:14:47Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "After a lot of late nights, coding lessons and waayyy too much googling and chat gpt-ing (some of these errors genuinely can’t be fr), I’m finally sharing APEX v1.0 🙋♀️ APEX is a biomedical AI project, which explores how machine learning can be used to better understand genomic data (from the endless, underutilised gene dumps) and hence its manifestation via various diseases. For this first version, I focused on breast cancer subtyping, specifically the molecular classifications of PAM50, using gene expression data to predict said subtypes through the characteristic levels of specific genes. This project started out with me knowing basically nothing about machine learning or python, so getting this far feels like a reward in itself 😭. It’s still an early prototype, and there’s a lot more I want to build and improve upon (so watch out for that). But for now… here’s APEX v1.0 🙇♀️", "repo": "https://github.com/aman-anoop/apex-biomedical-ai", "demo": "https://apex-biomedical-ai.vercel.app/"}]...
|
[{"post_id": 53276, "ts": "202 [{"post_id": 53276, "ts": "2026-08-23T18:46:30Z", "hours": 0.2858, "text": "Apex V1. - Added File Uploading Feature"}]...
|
Title: Apex by @marveljesus | Stardance
Devlogs:
Title: Apex by @marveljesus | Stardance
Devlogs:
Apex V1. - Added File Uploading Feature
Ships:
After a lot of late nights, coding lessons and waayyy too much googling and chat gpt-ing (some of these errors genuinely can’t be fr), I’m finally sharing APEX v1.0 🙋♀️ APEX is a biomedical AI project, which explores how machine learning can be used to better understand genomic data (from the endless, underutilised gene dumps) and hence its manifestation via various diseases. For this first version, I focused on breast cancer subtyping, specifically the molecular classifications of PAM50, using gene expression data to predict said subtypes through the characteristic levels of specific genes. This project started out with me knowing basically nothing about machine learning or python, so getting this far feels like a reward in itself 😭. It’s still an early prototype, and there’s a lot more I want to build and improve upon (so watch out for that). But for now… here’s APEX v1.0 🙇♀️...
|
1793433042.0759964
|
1793519442.0759964
|
|
50084
|
slack bot by @lantern | Stardance
|
lantern
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T07:57:07Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A basic slack bot with 3 commands , i built this using the guide as this is my first time making a slack bot .Three commands are as follows /jpbot-ping – calculates and returns the bot’s response latency. /jpbot-catfact – fetches a random cat fact via the Cat Facts API using axios. /jpbot-joke – random joke via JokeAPI.", "repo": "https://github.com/jigneshphalsawal-cloud/slack-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0BSJ1HU0TT"}]...
|
[{"post_id": 53607, "ts": "202 [{"post_id": 53607, "ts": "2026-08-24T07:41:58Z", "hours": 1.275, "text": "Added 3 commands for the slack bot!!!"}]...
|
Title: slack bot by @lantern | Stardance
Devlogs: Title: slack bot by @lantern | Stardance
Devlogs:
Added 3 commands for the slack bot!!!
Ships:
A basic slack bot with 3 commands , i built this using the guide as this is my first time making a slack bot .Three commands are as follows /jpbot-ping – calculates and returns the bot’s response latency. /jpbot-catfact – fetches a random cat fact via the Cat Facts API using axios. /jpbot-joke – random joke via JokeAPI....
|
1792958056.59357
|
1793822056.59357
|
|
52635
|
webos1 by @Tallurisaikumar | Stardance
|
Tallurisaikumar
|
1
|
12.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T06:45:13Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "WebOS - Project Description WebOS is a web-based project, which recreates the look and functionality of the desktop-based operating system within a web browser. I made it in order to make a website appear more like a real operating system, not just a webpage. Main Features: Desktop: Clean, desktop-like interface, featuring familiar computer icons and windowed applications; Applications: Various downloadable computer applications; Taskbar: The familiar taskbar of a computer operating system; Interactiveness: The web-based computer can actually be used and interacted with; Responsiveness: The page is responsive and can be adapted to various screen sizes; Simplicity: Easy and intuitive layout to prevent confusion; Modern: Modern visual theme to make the computer look realistic and contemporary; Web-Based: The operating system is run in a browser without requiring any additional installers. What I did in the project: The project is built from HTML, CSS, and JavaScript, and uses JavaScript to give the page interactivity. HTML and CSS allow me to construct the page interface and build the elements on the web page. What I Found Challenging: The only true challenge of this project was to make a functioning website resemble and act like a real desktop computer. The tasks involved in making the applications, taskbar, and other elements were complicated and needed extensive coding and scripting in order to achieve the desired effect. What I am Most Proud Of: I am proud to have accomplished this project, as it involves a lot of detail and makes the web browser behave like an actual operating system. Instead of building an ordinary webpage, I was able to build something which allows users to feel as if they are using a small computer on their own. What Users Can Do: A user can visit the page and interact with the programs, icons, and other elements as if they were using a computer. The project contains multiple applications, which can also be opened in order to test them. This project is focused on the visual and interactive experience, and not on any specific utility.", "repo": "https://github.com/tallurisai9346-beep/webOS", "demo": "https://web-os-opal.vercel.app/"}]...
|
[{"post_id": 53557, "ts": "202 [{"post_id": 53557, "ts": "2026-08-24T04:50:53Z", "hours": 2.4736, "text": "iam add many windos like music,sogs,file ect…."}, {"post_id": 52449, "ts": "2026-08-22T15:59:01Z", "hours": 1.8692, "text": "iam add web os down desktop"}, {"post_id": 52357, "ts": "2026-08-22T13:56:58Z", "hours": 2.93, "text": "adding new web app to use"}, {"post_id": 52240, "ts": "2026-08-22T10:30:38Z", "hours": 3.8786, "text": "web os iam add background and add some apps like music,games,files"}, {"post_id": 52094, "ts": "2026-08-22T05:17:25Z", "hours": 0.35, "text": "my new project is web os 1 just now startd"}]...
|
Title: webos1 by @Tallurisaikumar | Stardance
Dev Title: webos1 by @Tallurisaikumar | Stardance
Devlogs:
my new project is web os 1 just now startd
web os iam add background and add some apps like music,games,files
adding new web app to use
iam add web os down desktop
iam add many windos like music,sogs,file ect….
Ships:
WebOS - Project Description WebOS is a web-based project, which recreates the look and functionality of the desktop-based operating system within a web browser. I made it in order to make a website appear more like a real operating system, not just a webpage. Main Features: Desktop: Clean, desktop-like interface, featuring familiar computer icons and windowed applications; Applications: Various downloadable computer applications; Taskbar: The familiar taskbar of a computer operating system; Interactiveness: The web-based computer can actually be used and interacted with; Responsiveness: The page is responsive and can be adapted to various screen sizes; Simplicity: Easy and intuitive layout to prevent confusion; Modern: Modern visual theme to make the computer look realistic and contemporary; Web-Based: The operating system is run in a browser without requiring any additional installers. What I did in the project: The project is built from HTML, CSS, and JavaScript, and uses JavaScript to give the page interactivity. HTML and CSS allow me to construct the page interface and build the elements on the web page. What I Found Challenging: The only true challenge of this project was to make a functioning website resemble and act like a real desktop computer. The tasks involved in making the applications, taskbar, and other elements were complicated and needed extensive coding and scripting in order to achieve the desired effect. What I am Most Proud Of: I am proud to have accomplished this project, as it involves a lot of detail and makes the web browser behave like an actual operating system. Instead of building an ordinary webpage, I was able to build something which allows users to feel as if they are using a small computer on their own. What Users Can Do: A user can visit the page and interact with the programs, icons, and other elements as if they were using a computer. The project contains multiple applications, which can also be opened in order to test them. This project is focused on the visual and interactive experience, and not on any specific utility....
|
1792878459.4233572
|
1793742459.4233572
|
|
52677
|
Ghost Wiki by @SupremeSamurai | Stardance
|
SupremeSamurai
|
1
|
9.0
|
41
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T06:34:10Z", "hours": 9.0, "multiplier": 3.65, "payout": 41, "blessing": "neutral", "text": "I made a clone of wikipedia for some ghost research purpose with few free things to offer! The most challenging part was the prototype. I mean, which type of website to make. Before this, I had scrapped 2 prototypes for this specific idea. While testing this website make sure to click everything that is clickable on this website.", "repo": "https://github.com/Arhan-fx/The-Ghost-Wiki", "demo": "https://the-ghost-wiki.vercel.app"}]...
|
[{"post_id": 53589, "ts": "202 [{"post_id": 53589, "ts": "2026-08-24T06:17:10Z", "hours": 0.6183, "text": "I am done with project! I have successfully created everything that was in my mind. I tried my best to give it a look like IRL wiki Now its yall turn to test out Ghost Wiki. Learn something about Ghost mythology."}, {"post_id": 53572, "ts": "2026-08-24T05:14:56Z", "hours": 1.1078, "text": "I am done with HTML and CSS part Now I am currently working on the functionality of the website. There are 2-3 bugs that I am fixing right now And this is the final look of the website’s appearance. If I decide to change anything will inform y’all"}, {"post_id": 53513, "ts": "2026-08-24T02:59:00Z", "hours": 7.475, "text": "So after so many painful hours of searching, making, and scraping, a prototype for this specific idea. I have concluded to go with the Wikipedia design since I have trust issues with my CSS skills. I made this home screen for the GHOST wiki with a few ghost names in it. I know 7 hecking hours for this animal waste is too much, but trust me yall don’t know the rage I suffered making 2 different prototypes. But let me tell you guys one thing: trust the process. It won’t be long before I release it"}]...
|
Title: Ghost Wiki by @SupremeSamurai | Stardance
Title: Ghost Wiki by @SupremeSamurai | Stardance
Devlogs:
So after so many painful hours of searching, making, and scraping, a prototype for this specific idea. I have concluded to go with the Wikipedia design since I have trust issues with my CSS skills. I made this home screen for the GHOST wiki with a few ghost names in it. I know 7 hecking hours for this animal waste is too much, but trust me yall don’t know the rage I suffered making 2 different prototypes. But let me tell you guys one thing: trust the process. It won’t be long before I release it
I am done with HTML and CSS part Now I am currently working on the functionality of the website. There are 2-3 bugs that I am fixing right now And this is the final look of the website’s appearance. If I decide to change anything will inform y’all
I am done with project! I have successfully created everything that was in my mind. I tried my best to give it a look like IRL wiki Now its yall turn to test out Ghost Wiki. Learn something about Ghost mythology.
Ships:
I made a clone of wikipedia for some ghost research purpose with few free things to offer! The most challenging part was the prototype. I mean, which type of website to make. Before this, I had scrapped 2 prototypes for this specific idea. While testing this website make sure to click everything that is clickable on this website....
|
1792878473.6835685
|
1793742473.6835685
|
|
51770
|
My platformer game by @SelinaZ | Stardance
|
SelinaZ
|
1
|
6.0
|
11
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T05:41:25Z", "hours": 6.0, "multiplier": 1.76, "payout": 11, "blessing": "neutral", "text": "This is the first Java project I’ve ever coded in my life. Because I’m about to take a Java course in the upcoming project, I want to use a little project to understand how Java works a little better. So I kept things very simple, the game logic and interface are all very simple and easy. To run this game, you will have to download it to your own PC (follow the instructions in the GitHub README). How to play? You click the “start” button, and use the space bar on your keyboard to make the bird jump up. If you don’t make the bird jump, the bird will automatically fall downward. You will lose the game whenever the bird hit a pipe or falls out of the screen. You can see your current score on the top left corner. To play again, just click on the “replay” button. Enjoy playing:)", "repo": "https://github.com/SelinaZ07/my-platformer-game", "demo": "https://github.com/SelinaZ07/my-platformer-game/releases/tag/v1.0"}]...
|
[{"post_id": 53578, "ts": "202 [{"post_id": 53578, "ts": "2026-08-24T05:35:03Z", "hours": 1.7711, "text": "I wrote the readme with executables and doubled checked everything is working. Then I pushed the changes to Github, and it should be good to go! However, since this is a Java project, I can’t deploy it to a web browser. So it can only be run on a local PC."}, {"post_id": 52819, "ts": "2026-08-23T05:18:17Z", "hours": 0.5044, "text": "I added a start and a replay button so the user can keep playing the game. The game is working perfectly and now just have to clean up the code and add in some more comments! Also need to work on deployment as well."}, {"post_id": 52143, "ts": "2026-08-22T07:26:46Z", "hours": 2.6539, "text": "I have successfully implemented the game logic and added a score display. Now the game will end whenever the bird falls out of the frame or hit one of the poles."}, {"post_id": 51456, "ts": "2026-08-21T05:37:41Z", "hours": 1.5494, "text": "I started coding my first ever game in Java. I’ve never code anything in Java before, but I’m about to take a course in Java, so I wanna start getting my hands on it early. This will be a very basic platformer game, since I’m just getting started on it, I don’t want to make things very complicated."}]...
|
Title: My platformer game by @SelinaZ | Stardance
Title: My platformer game by @SelinaZ | Stardance
Devlogs:
I started coding my first ever game in Java. I’ve never code anything in Java before, but I’m about to take a course in Java, so I wanna start getting my hands on it early. This will be a very basic platformer game, since I’m just getting started on it, I don’t want to make things very complicated.
I have successfully implemented the game logic and added a score display. Now the game will end whenever the bird falls out of the frame or hit one of the poles.
I added a start and a replay button so the user can keep playing the game. The game is working perfectly and now just have to clean up the code and add in some more comments! Also need to work on deployment as well.
I wrote the readme with executables and doubled checked everything is working. Then I pushed the changes to Github, and it should be good to go! However, since this is a Java project, I can’t deploy it to a web browser. So it can only be run on a local PC.
Ships:
This is the first Java project I’ve ever coded in my life. Because I’m about to take a Java course in the upcoming project, I want to use a little project to understand how Java works a little better. So I kept things very simple, the game logic and interface are all very simple and easy. To run this game, you will have to download it to your own PC (follow the instructions in the GitHub README). How to play? You click the “start” button, and use the space bar on your keyboard to make the bird jump up. If you don’t make the bird jump, the bird will automatically fall downward. You will lose the game whenever the bird hit a pipe or falls out of the screen. You can see your current score on the top left corner. To play again, just click on the “replay” button. Enjoy playing:)...
|
1793533779.5870585
|
1793620179.5870585
|
|
53431
|
PocketEngineer by @radioactivemouse | Stardance
|
radioactivemouse
|
1
|
44.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T05:03:20Z", "hours": 44.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made PocketEngineer which is an OpenClaw powered study app for students to learn and practice physics and math content customized to their goals. I was initially assigned this as a project for an internship at the startup Arina AI, which focuses on providing AI/software infrastructure customized to businesses and educational centers. Along those lines, I decided to make an app utilizing OpenClaw for students to use to help practice/improve their math and physics knowledge. A part of my inspiration came from apps like Duolingo or Brainly… which is unfortunately paid :( as well as from AP physics exam style MCQs. I do plan to continue to make improvements to my app but I have a fundamentally working version so I can begin getting feedback from users.", "repo": "https://github.com/reeesadh/PocketEngineer", "demo": "https://github.com/reeesadh/PocketEngineer/releases/tag/v1.0.0"}]...
|
[{"post_id": 53555, "ts": "202 [{"post_id": 53555, "ts": "2026-08-24T04:49:57Z", "hours": 1.6644, "text": "Just streamlined my app launch process"}, {"post_id": 53216, "ts": "2026-08-23T17:35:24Z", "hours": 42.5633, "text": "Just pushed my first beta version of PocketEngineer! It has a working system for users to start a physics/math class of their choosing, generates a unit map similar to how Duolingo would, and allows students to take mastery checks and learn more about topics."}]...
|
Title: PocketEngineer by @radioactivemouse | Stard Title: PocketEngineer by @radioactivemouse | Stardance
Devlogs:
Just pushed my first beta version of PocketEngineer! It has a working system for users to start a physics/math class of their choosing, generates a unit map similar to how Duolingo would, and allows students to take mastery checks and learn more about topics.
Just streamlined my app launch process
Ships:
I made PocketEngineer which is an OpenClaw powered study app for students to learn and practice physics and math content customized to their goals. I was initially assigned this as a project for an internship at the startup Arina AI, which focuses on providing AI/software infrastructure customized to businesses and educational centers. Along those lines, I decided to make an app utilizing OpenClaw for students to use to help practice/improve their math and physics knowledge. A part of my inspiration came from apps like Duolingo or Brainly… which is unfortunately paid :( as well as from AP physics exam style MCQs. I do plan to continue to make improvements to my app but I have a fundamentally working version so I can begin getting feedback from users....
|
1793407742.9511573
|
1793494142.9511573
|
|
23464
|
Amalgam by @martin_chen_au | Stardance
|
martin_chen_au
|
2
|
7.0
|
112
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T05:03:07Z", "hours": 2.0, "multiplier": 14.92, "payout": 26, "blessing": "neutral", "text": "I continued with this tool, fixing bugs, increasing compatibility for various platforms and python versions, and fixing issues like underdeveloped flags.", "repo": "https://github.com/BitPeppr/Amalgam", "demo": "https://pypi.org/project/amalgam-panel/0.1.2/"}, {"ship_num": 2, "ts": "2026-06-22T02:42:15Z", "hours": 5.0, "multiplier": 16.14, "payout": 86, "blessing": "neutral", "text": "I’m quite happy with this project. It wasn’t the longest thing ever, and for a few hours, I think I’ve solved lots of problems: Cluttered multi-terminal juggling of windows Performance degradation of multiple background agents Manual copy-pasting between models I used the tool to check itself, and it worked great! Hope you like it. Maybe in the future, I’ll extend it to accept more apis and perhaps specific models, or even multi-api queries, but for now it more than achieves my goals.", "repo": "https://github.com/BitPeppr/Amalgam", "demo": "https://pypi.org/project/amalgam-panel/0.1.2/"}]...
|
[{"post_id": 51989, "ts": "202 [{"post_id": 51989, "ts": "2026-08-22T00:16:31Z", "hours": 0.6233, "text": "More errors; my shipwright ran the project from system home (something I hadn’t anticipated; I was expecting it to be a repo-level tool), and so the tool took ages gobbling up his configs and binaries, much of which it couldn’t read. So now I’ve made it so context is not default on; one must pass –context flag for it to activate (otherwise we’ll have too many llms getting gigabytes of random stuff!). Hope this helps."}, {"post_id": 48608, "ts": "2026-08-17T02:19:02Z", "hours": 0.6147, "text": "The ship came back with an error — I don’t have slack notifications and I found out weeks late! — and I scrambled to fix it. Turns out there was a subtle f-string syntax nuance that python flags as an error in pre-3.12 versions, but is accepted in post-3.12 versions, and so my 3.14 venv accepted it, while maybe the shipwright’s didn’t. I fixed the formatting, but pushed min version up to 3.12 just to be safe (I feel like 3.12 is a very stable version, shouldn’t be too aggressive a version). And then when I was testing I found out that multi-model flag inputs didn’t work for some reason! So I fixed that, which was surprisingly easy. Then a few checks, updates, and pushes later, and I was done!"}, {"post_id": 14088, "ts": "2026-06-23T02:22:45Z", "hours": 0.4811, "text": "You can now use endpoints apart from opencode zen and custom models, defined with cli flags! You can now get a result back in under 5 seconds with diffusion gemma on nvidia nim!"}, {"post_id": 13485, "ts": "2026-06-22T02:38:12Z", "hours": 0.7483, "text": "I uploaded it to pypi! Everytime I try to upload to pypi, I always forget the format (src/…) and the commands with twine and build, but I’m getting there. I keep making minor errors (e.g. local imports can be absolute, but packaged version must use relative), and so I’m already up to 0.1.2 (two more updates to get it to a working state). You can not install with pip install amalgam-panel! (Amalgam was taken already by a wrapper :<)"}, {"post_id": 13451, "ts": "2026-06-22T01:03:25Z", "hours": 0.6233, "text": "Added conversation / follow-up questions! The cli saves past prompts and responses, attaching to new messages as context, and allows for a more chat-interface style interaction. I ran into lots of trouble with the ordering of messages and context structuring, but in the end it seems to work fine. Hope it’s a good change!"}, {"post_id": 13419, "ts": "2026-06-21T23:38:52Z", "hours": 0.8128, "text": "Added a context summarisation flag! You can now pass in –summarise-context for it to query free llms and summarise large repositories (any text-based files), saving tokens before the panel starts its work. Hopefully helpful for larger, unfeasibly large codebases, though rather dependent on the context-summarisation model (currently big-pickle, seemingly the most reliably-always-free model with respectable and reliable performance, with little errors or json issues)."}, {"post_id": 13053, "ts": "2026-06-21T10:43:20Z", "hours": 3.1233, "text": "While I was finishing up my Trisolaris project, along with polishing calculations for a fluid simulation project, I found myself asking multiple llms to check for errors or potential issues. This resulted in up to seven opencode instances in separate windows, and after getting their responses, I would then pass them to a reliable llm I trusted — often mimo v2.5 — to merge into a single cross-referenced response. While this was great, helping me to catch potential edge cases or give me some general advice on potential improvements, it was very messy and time-costly, and for my rather humble laptop, performance-draining. And so I thought I would use the opencode zen api and make a python tool to automate the process! Amalgam is a python cli that accepts a variety of flags (to customise every aspect of it, from temperatures, number of responses, to timeout, and other parameters) and a prompt, presenting prompt and context to a ‘panel’ of llms (quite literally every free model available on the zen api, auto-detected with key validation), collecting numerous responses to be merged into a single unified, comprehensive response. This maintains the advantage of having multiple llms with different strengths, while keeping it overall time-efficient by automating many of the cross copy-pasting required normally, along with presenting all context (though this may be token-costly for larger repos, this could be improved in the future). I’m quite happy with what I’ve got. It’s been a short project so far, but for my purposes, it’s practically done. I will work on it, potentially adding follow-up question features and context summarisation for larger repos, but it largely fulfills its purpose! The below two screenshots show the before and after, from multi-window clusters to a singular, clean and unified report. If anyone has suggestions or feature ideas, I would love to implement them! I feel like this is a perhaps common idea, but I haven’t find a solution for my needs (completely free auto-discovered model panel, with customisability yet simplicity); hope you like it!"}]...
|
Title: Amalgam by @martin_chen_au | Stardance
Dev Title: Amalgam by @martin_chen_au | Stardance
Devlogs:
While I was finishing up my Trisolaris project, along with polishing calculations for a fluid simulation project, I found myself asking multiple llms to check for errors or potential issues. This resulted in up to seven opencode instances in separate windows, and after getting their responses, I would then pass them to a reliable llm I trusted — often mimo v2.5 — to merge into a single cross-referenced response. While this was great, helping me to catch potential edge cases or give me some general advice on potential improvements, it was very messy and time-costly, and for my rather humble laptop, performance-draining. And so I thought I would use the opencode zen api and make a python tool to automate the process! Amalgam is a python cli that accepts a variety of flags (to customise every aspect of it, from temperatures, number of responses, to timeout, and other parameters) and a prompt, presenting prompt and context to a ‘panel’ of llms (quite literally every free model available on the zen api, auto-detected with key validation), collecting numerous responses to be merged into a single unified, comprehensive response. This maintains the advantage of having multiple llms with different strengths, while keeping it overall time-efficient by automating many of the cross copy-pasting required normally, along with presenting all context (though this may be token-costly for larger repos, this could be improved in the future). I’m quite happy with what I’ve got. It’s been a short project so far, but for my purposes, it’s practically done. I will work on it, potentially adding follow-up question features and context summarisation for larger repos, but it largely fulfills its purpose! The below two screenshots show the before and after, from multi-window clusters to a singular, clean and unified report. If anyone has suggestions or feature ideas, I would love to implement them! I feel like this is a perhaps common idea, but I haven’t find a solution for my needs (completely free auto-discovered model panel, with customisability yet simplicity); hope you like it!
Added a context summarisation flag! You can now pass in –summarise-context for it to query free llms and summarise large repositories (any text-based files), saving tokens before the panel starts its work. Hopefully helpful for larger, unfeasibly large codebases, though rather dependent on the context-summarisation model (currently big-pickle, seemingly the most reliably-always-free model with respectable and reliable performance, with little errors or json issues).
Added conversation / follow-up questions! The cli saves past prompts and responses, attaching to new messages as context, and allows for a more chat-interface style interaction. I ran into lots of trouble with the ordering of messages and context structuring, but in the end it seems to work fine. Hope it’s a good change!
I uploaded it to pypi! Everytime I try to upload to pypi, I always forget the format (src/…) and the commands with twine and build, but I’m getting there. I keep making minor errors (e.g. local imports can be absolute, but packaged version must use relative), and so I’m already up to 0.1.2 (two more updates to get it to a working state). You can not install with pip install amalgam-panel! (Amalgam was taken already by a wrapper :<)
You can now use endpoints apart from opencode zen and custom models, defined with cli flags! You can now get a result back in under 5 seconds with diffusion gemma on nvidia nim!
The ship came back with an error — I don’t have slack notifications and I found out weeks late! — and I scrambled to fix it. Turns out there was a subtle f-string syntax nuance that python flags as an error in pre-3.12 versions, but is accepted in post-3.12 versions, and so my 3.14 venv accepted it, while maybe the shipwright’s didn’t. I fixed the formatting, but pushed min version up to 3.12 just to be safe (I feel like 3.12 is a very stable version, shouldn’t be too aggressive a version). And then when I was testing I found out that multi-model flag inputs didn’t work for some reason! So I fixed that, which was surprisingly easy. Then a few checks, updates, and pushes later, and I was done!
More errors; my shipwright ran the project from system home (something I hadn’t anticipated; I was expecting it to be a repo-level tool), and so the tool took ages gobbling up his configs and binaries, much of which it couldn’t read. So now I’ve made it so context is not default on; one must pass –context flag for it to activate (otherwise we’ll have too many llms getting gigabytes of random stuff!). Hope this helps.
Ships:
I’m quite happy with this project. It wasn’t the longest thing ever, and for a few hours, I think I’ve solved lots of problems: Cluttered multi-terminal juggling of windows Performance degradation of multiple background agents Manual copy-pasting between models I used the tool to check itself, and it worked great! Hope you like it. Maybe in the future, I’ll extend it to accept more apis and perhaps specific models, or even multi-api queries, but for now it more than achieves my goals.
I continued with this tool, fixing bugs, increasing compatibility for various platforms and python versions, and fixing issues like underdeveloped flags....
|
1792878611.3367767
|
1793742611.3367767
|
|
46914
|
Reddit Achievements Image Downloader by @46009361 Reddit Achievements Image Downloader by @46009361 | Stardance...
|
46009361
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T04:54:17Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I thought the most challenging part would be using the Web Share API, but testing the internationalization took the most time. Please read the “Important” note in the readme before testing it out; you may get an unexpected popup!", "repo": "https://github.com/46009361/raid", "demo": "https://4600936.uno/"}]...
|
[{"post_id": 53551, "ts": "202 [{"post_id": 53551, "ts": "2026-08-24T04:37:58Z", "hours": 0.8231, "text": "I added everything to the Readme and the fine print I promised to add in the first devlog."}, {"post_id": 46083, "ts": "2026-08-13T01:13:19Z", "hours": 1.0178, "text": "I made the language selector easier to read and removed unsupported languages, as well as catching errors."}, {"post_id": 45641, "ts": "2026-08-12T08:33:08Z", "hours": 2.5792, "text": "There would’ve been between 30m and 1h 15m of additional time tracked if I hadn’t forgotten to trust my folder . However, I stayed up past midnight to add HTML, JS, and CSS near the end; I got the URL format of the achievement images from a disclosed report on Reddit’s HackerOne page regarding IDORs. My language selector also worked correctly. Either way, I’m quite happy with how my first prototype turned out! Next is adding the download button, to make the site easier to use, as well as some fine print."}]...
|
Title: Reddit Achievements Image Downloader by @46 Title: Reddit Achievements Image Downloader by @46009361 | Stardance
Devlogs:
There would’ve been between 30m and 1h 15m of additional time tracked if I hadn’t forgotten to trust my folder . However, I stayed up past midnight to add HTML, JS, and CSS near the end; I got the URL format of the achievement images from a disclosed report on Reddit’s HackerOne page regarding IDORs. My language selector also worked correctly. Either way, I’m quite happy with how my first prototype turned out! Next is adding the download button, to make the site easier to use, as well as some fine print.
I made the language selector easier to read and removed unsupported languages, as well as catching errors.
I added everything to the Readme and the fine print I promised to add in the first devlog.
Ships:
I thought the most challenging part would be using the Web Share API, but testing the internationalization took the most time. Please read the “Important” note in the readme before testing it out; you may get an unexpected popup!...
|
1792878542.5587778
|
1793742542.5587778
|
|
53592
|
my personal site v2 by @D3RLORD3_OM | Stardance
|
D3RLORD3_OM
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T04:50:43Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made an retro style about me site i particularly had an hard time finding refrences and re-writing the refrenced code to ensure that it can be used in my site i also added my photo and 3 pixel arts to make the site feel more customized", "repo": "https://github.com/omguptaogwhitehathacker-svg/personal-site-v", "demo": "https://omguptaogwhitehathacker-svg.github.io/personal-site-v/"}]...
|
[{"post_id": 53554, "ts": "202 [{"post_id": 53554, "ts": "2026-08-24T04:48:43Z", "hours": 0.4508, "text": "Devlog 001: Starting My Personal Website This is the first development log for my personal website. I created it as a small online space to share my interests, projects, games, and Minecraft servers. The main problem I discovered was that the code was difficult to read. Several HTML sections were compressed onto single lines(from the samples i took from the internet and AI), and the CSS contained many properties written together. Although the website worked, editing it was frustrating because it was hard to find individual elements. I reformatted the files with clearer indentation and spacing so the structure is easier to understand and maintain. The website has five main pages. The home page introduces me as a player, builder, and explorer. The about page explains my interests in gaming, coding, hardware, science, fitness, and experimenting. The games page focuses on Minecraft and Warframe, while the servers page lists my Minecraft worlds and their connection details. The projects page contains ideas such as an HHO solar-powered car, an arc reactor imitation, ESP32 projects, and solar technology. I chose a retro 1990s internet style with Times New Roman, Courier New, bright yellow highlights, dark blue colours, old-style borders, and pixel-art elements. Some of the artwork is created directly with HTML and CSS instead of using images. I also added an invitation for everyone to join my Minecraft servers. Anyone interested can contact me at: [email protected] The website is still a work in progress. Future improvements may include better project documentation, more images, improved mobile styling, and a cleaner contact system."}]...
|
Title: my personal site v2 by @D3RLORD3_OM | Stard Title: my personal site v2 by @D3RLORD3_OM | Stardance
Devlogs:
Devlog 001: Starting My Personal Website This is the first development log for my personal website. I created it as a small online space to share my interests, projects, games, and Minecraft servers. The main problem I discovered was that the code was difficult to read. Several HTML sections were compressed onto single lines(from the samples i took from the internet and AI), and the CSS contained many properties written together. Although the website worked, editing it was frustrating because it was hard to find individual elements. I reformatted the files with clearer indentation and spacing so the structure is easier to understand and maintain. The website has five main pages. The home page introduces me as a player, builder, and explorer. The about page explains my interests in gaming, coding, hardware, science, fitness, and experimenting. The games page focuses on Minecraft and Warframe, while the servers page lists my Minecraft worlds and their connection details. The projects page contains ideas such as an HHO solar-powered car, an arc reactor imitation, ESP32 projects, and solar technology. I chose a retro 1990s internet style with Times New Roman, Courier New, bright yellow highlights, dark blue colours, old-style borders, and pixel-art elements. Some of the artwork is created directly with HTML and CSS instead of using images. I also added an invitation for everyone to join my Minecraft servers. Anyone interested can contact me at: [email protected] The website is still a work in progress. Future improvements may include better project documentation, more images, improved mobile styling, and a cleaner contact system.
Ships:
i made an retro style about me site i particularly had an hard time finding refrences and re-writing the refrenced code to ensure that it can be used in my site i also added my photo and 3 pixel arts to make the site feel more customized...
|
1793454453.4783278
|
1793540853.4783278
|
|
50680
|
Kaveesh's mind.com by @Mrwizardman | Stardance
|
Mrwizardman
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T04:10:17Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hello everyone, in this project I’ve made my very first webpage coding project. It’s very simple but it fully works. For this project since it’s my first time coding, figuring out the layout of everything, and adding the css into the html code was very confusing. For this project what I’m most proud off is the fact that i was able to add gifs and photos to give the webpage a nice vibe.", "repo": "https://github.com/mrwizardmann/Kaveesh-s-mind-website", "demo": "https://mrwizardmann.github.io/Kaveesh-s-mind-website/"}]...
|
[{"post_id": 49373, "ts": "202 [{"post_id": 49373, "ts": "2026-08-18T05:02:21Z", "hours": 1.1044, "text": "This is my first time coding and creating a website, and I have added some funny things and a link to my instagram art account."}]...
|
Title: Kaveesh's mind.com by @Mrwizardman | St Title: Kaveesh's mind.com by @Mrwizardman | Stardance
Devlogs:
This is my first time coding and creating a website, and I have added some funny things and a link to my instagram art account.
Ships:
Hello everyone, in this project I’ve made my very first webpage coding project. It’s very simple but it fully works. For this project since it’s my first time coding, figuring out the layout of everything, and adding the css into the html code was very confusing. For this project what I’m most proud off is the fact that i was able to add gifs and photos to give the webpage a nice vibe....
|
1793318081.1865165
|
1793404481.1865165
|
|
53080
|
WisdomOS by @bradlloyd | Stardance
|
bradlloyd
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T03:55:03Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "WisdomOS will bring not only Wisdom but a strong tight knit community to you. You can learn from the classics, the greats, or even modern gurus on Wisdom. WisdomOS features a journal to see inside the founders mind on top of all the amazing quotes. There are two about pages one to see about the founder and another about wisdom os.", "repo": "https://github.com/Bdlloyd83/BOSs", "demo": "https://bdlloyd83.github.io/WisdomOS2.0/index.html"}]...
|
[{"post_id": 53534, "ts": "202 [{"post_id": 53534, "ts": "2026-08-24T03:52:02Z", "hours": 0.3956, "text": "Updated and polished the backend of wisdom os to prepare for ship. Very excited to see what people think of it and what quotes they might want added on as well as how they relate."}, {"post_id": 53493, "ts": "2026-08-24T02:09:46Z", "hours": 0.425, "text": "Finished advanced app. Its a bunch of quotes I like that you can scroll through and it will bring up their picture too."}, {"post_id": 53473, "ts": "2026-08-24T01:18:17Z", "hours": 5.5475, "text": "Home Screen About Pages and first app finished. Sorry got into flow state so I havent written any devlogs yet. Its been very enjoyable to be able to see whatever I can imagaine or like come to life. My favorite part so far has been playing around with the many styles to see how it can improve the look of a website is also pretty amazing."}]...
|
Title: WisdomOS by @bradlloyd | Stardance
Devlogs Title: WisdomOS by @bradlloyd | Stardance
Devlogs:
Home Screen About Pages and first app finished. Sorry got into flow state so I havent written any devlogs yet. Its been very enjoyable to be able to see whatever I can imagaine or like come to life. My favorite part so far has been playing around with the many styles to see how it can improve the look of a website is also pretty amazing.
Finished advanced app. Its a bunch of quotes I like that you can scroll through and it will bring up their picture too.
Updated and polished the backend of wisdom os to prepare for ship. Very excited to see what people think of it and what quotes they might want added on as well as how they relate.
Ships:
WisdomOS will bring not only Wisdom but a strong tight knit community to you. You can learn from the classics, the greats, or even modern gurus on Wisdom. WisdomOS features a journal to see inside the founders mind on top of all the amazing quotes. There are two about pages one to see about the founder and another about wisdom os....
|
1793537321.7002008
|
1793623721.7002008
|
|
45777
|
Virtual Piano by @EndLess9 | Stardance
|
EndLess9
|
1
|
6.0
|
22
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T02:26:38Z", "hours": 6.0, "multiplier": 3.64, "payout": 22, "blessing": "neutral", "text": "Virtual Piano: This is a digital piano that you can play on your browser. You can play it using your mouse, touchscreen, or your keyboard. Some Features: Adjustable Volume Bar: You can adjust the volume of the piano using the slider. Orange Keys: Checking this box off makes your white keys orange. Try playing: Mary had a little lamb: This given used the notes shown on the piano’s keys which are needed to play the famous song: Mary Had a Little Lamb.", "repo": "https://github.com/EndLessDude/Virtual-Piano", "demo": "https://virtualpianoendless.netlify.app/"}]...
|
[{"post_id": 53497, "ts": "202 [{"post_id": 53497, "ts": "2026-08-24T02:20:14Z", "hours": 2.46, "text": "Devlog #3 I added 2 new features and wrote my readme. Feature #1: Orange Keys By checking off this check-box the white keys in the piano simply become orange. I did this by creating new css styling for the orange keys, created a check-box using html, and then used a event listener in JS to switch the white keys css styling with the orange keys. Feature #2: Trial Song For this feature I basically created a box above the piano with the notes for the song: Mary had a little lamb. Instead of using musical notes I used the letters on the piano keys so everyone can easily play it."}, {"post_id": 52056, "ts": "2026-08-22T03:10:58Z", "hours": 2.1614, "text": "Devlog #2: Phase 1: In phase one I created the piano keys using css. Then I used html to reverse the gradient of the piano keys to make it look like they are pressed. Then I used html again to write letters on the keys. These letters will later be used to play the piano though your computer’s keyboard. Phase 2: In phase 2 I added the notes for the keys of the piano. I added the data set for each key in html which corresponds to the letter of each key. Then using javascript the corresponding sound will be played when the key is clicked using the cursor. Phase 3: In phase 3 I added event listeners in my javascript file which play the piano’s notes when you press letters on your keyboard. I also added a 150ms cool down which untoggles the active piano keys, without this the piano keys look so they are pressed down even after releasing the key."}, {"post_id": 43734, "ts": "2026-08-09T04:29:02Z", "hours": 1.4111, "text": "Devlog #1 I used html and css to create the top part of the piano which shows the header(Name of the Project), a slider which controls the volume, and a sliding checkbox that shows/hides the letters on the piano keys. Currently the letters for the piano keys are in the top part but soon when the piano keys are made they will be shown individually on the keys."}]...
|
Title: Virtual Piano by @EndLess9 | Stardance
Dev Title: Virtual Piano by @EndLess9 | Stardance
Devlogs:
Devlog #1 I used html and css to create the top part of the piano which shows the header(Name of the Project), a slider which controls the volume, and a sliding checkbox that shows/hides the letters on the piano keys. Currently the letters for the piano keys are in the top part but soon when the piano keys are made they will be shown individually on the keys.
Devlog #2: Phase 1: In phase one I created the piano keys using css. Then I used html to reverse the gradient of the piano keys to make it look like they are pressed. Then I used html again to write letters on the keys. These letters will later be used to play the piano though your computer’s keyboard. Phase 2: In phase 2 I added the notes for the keys of the piano. I added the data set for each key in html which corresponds to the letter of each key. Then using javascript the corresponding sound will be played when the key is clicked using the cursor. Phase 3: In phase 3 I added event listeners in my javascript file which play the piano’s notes when you press letters on your keyboard. I also added a 150ms cool down which untoggles the active piano keys, without this the piano keys look so they are pressed down even after releasing the key.
Devlog #3 I added 2 new features and wrote my readme. Feature #1: Orange Keys By checking off this check-box the white keys in the piano simply become orange. I did this by creating new css styling for the orange keys, created a check-box using html, and then used a event listener in JS to switch the white keys css styling with the orange keys. Feature #2: Trial Song For this feature I basically created a box above the piano with the notes for the song: Mary had a little lamb. Instead of using musical notes I used the letters on the piano keys so everyone can easily play it.
Ships:
Virtual Piano: This is a digital piano that you can play on your browser. You can play it using your mouse, touchscreen, or your keyboard. Some Features: Adjustable Volume Bar: You can adjust the volume of the piano using the slider. Orange Keys: Checking this box off makes your white keys orange. Try playing: Mary had a little lamb: This given used the notes shown on the piano’s keys which are needed to play the famous song: Mary Had a Little Lamb....
|
1793544987.6928096
|
1793631387.6928096
|
|
42116
|
Ile by @Leftie | Stardance
|
Leftie
|
1
|
58.98
|
810
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T01:50:52Z", "hours": 58.0, "multiplier": 13.97, "payout": 810, "blessing": "neutral", "text": "I made Ile, an embedded scripting language! It uses a recursive descent parser to build an abstract syntax tree and then walks the tree to execute. The hardest part was when I would run into tiny little problems, like Rust giving lifetime errors, and not knowing how to solve them immediately. I’m proudest of the parsing logic. It’s the longest source file I’ve ever written, and it took awhile to figure out. To test Ile, you can download it from the GitHub releases and run some of its example programs.", "repo": "https://github.com/left-alert-chaos/ile", "demo": "https://crates.io/crates/ile"}]...
|
[{"post_id": 57800, "ts": "202 [{"post_id": 57800, "ts": "2026-08-30T03:01:58Z", "hours": 0.9814, "text": "Devlog 14: …oh So I’ve been doing my development on Ubuntu, which, as a Linux distro, is UNIX-based, and uses just \\n for newlines. However, I haven’t done any testing on Windows, and Houston, we have a problem. I still don’t have all my ratings yet, but someone was kind enough to create a github issue saying that Ile doesn’t work on Windows. I hadn’t thought to support it, but Windows uses \\r\\n for newlines! This broke the tokenizer, and caused the language to be unusable on non-UNIX-based systems. It was a one-line fix, but I already have 10 ratings, so I can only hope they aren’t too negative for having bad Windows support.😟 P.S. I guess this means Windows is officially as outdated as a typewriter!"}, {"post_id": 53454, "ts": "2026-08-24T00:51:03Z", "hours": 5.0833, "text": "Devlog 13: Ship time! I’ve been working on getting everything ready to ship, and I think it’s almost time! I’ve fixed some bugs, added more tests, published to crates.io , and created a GitHub release! Now, I’ll make sure I have good instructions in my README, and I’ll be ready to go!"}, {"post_id": 52730, "ts": "2026-08-23T01:49:50Z", "hours": 5.53, "text": "Devlog 12: Scoping is hard I’ve been working on getting Ile ready to ship, and I had a small, significant feature to implement: scoping. This is basically when a function is called and uses the scope that it was a part of when it was created instead of the scope it was called in. This was hard . To implement this, my first thought was write yet another lookup function to find the correct module’s stack and walk the function in the stack. Unfortunately, the compiler didn’t like this. I couldn’t get it done without having 2 different mutable references to the stack at the same time, so it was off the table. What I ended up going for was when a function is called, it clones (memory-efficient, amirite?!) its entire scope and walks inside it. After the function executes, it then sets the value of its module’s scope to the current value of the scope it just walked in, so as to update it with any changes. Makes sense, right? RIGHT?! Anyway, there isn’t really a picture to show, so here’s tests passing."}, {"post_id": 51428, "ts": "2026-08-21T04:01:56Z", "hours": 4.3419, "text": "Devlog 11: I don’t even know I’m hoping to ship tomorrow, so I’m fixing up the language to be usable. I’ve been writing some documentation, so I have a little starter guide now. I also learned that Ile can use as little as one thirtieth the ram of Node.js! That’s definitely going in the features section."}, {"post_id": 50052, "ts": "2026-08-19T02:44:43Z", "hours": 5.3528, "text": "Devlog 10: asdf I’ve been trying to add a GUI system to the standard library. Because I don’t want any dependencies, I came up with the following harebrained scheme: Write a Python script that formats its stdin in a Tkinter window to draw a GUI When the function to create a window is called, spawn Python as a sub-process and send the text to be displayed to its input via a pipe Unfortunately, this doesn’t work. The script works when run on its own, but when run by Ile it just doesn’t launch a window. I couldn’t figure this out, so the GUI system (VeBaGu, or Very Bad GUI) is staying, albeit in an unstable beta state. On a side note, I’ve also decided to ditch the editor idea and just focus on the language; this Stardance project is now just Ile, not Crocodile."}, {"post_id": 49045, "ts": "2026-08-17T17:08:49Z", "hours": 1.5578, "text": "Devlog 9: Hello, world! I didn’t do that much work for this devlog, but I did achieve 2 important things: Added comment support Added bindings to println!() and stdin This means that Ile, as demonstrated below, can now read its stdin and write to stdout !"}, {"post_id": 48620, "ts": "2026-08-17T02:44:43Z", "hours": 5.3911, "text": "Devlog 8: We have language! If you couldn’t tell, that was a play on “we have liftoff!”. I didn’t add a rocket emoji, for obvious reasons. Anyway, I have great news: Ile is almost a usable language! Today, I added loops and operators, so it can iterate and do math now! My for loop is a tad different than other languages, so here’s the gist: every for loop has a condition and a block. Every iteration, the condition runs. If it returns something , the block runs. Otherwise, the loop exits. Because I made let statements return the value they assign, you can have syntax that looks like this : for let x = iterator.next() {} I’m really proud of how my syntax is turning out overall. There’s still not much to screenshot; I haven’t written the logic to interface with Rust, so there’s no println yet. I do have some more test coverage, though. There was some difficulty getting break to work, however. For some reason, the loop it was a part of would always keep going. Eventually, I figured out why: It was being removed from the stack at the end of the code block that generated it. To fix this, I added some logic to re-push it to the stack if it got popped."}, {"post_id": 47258, "ts": "2026-08-15T02:01:37Z", "hours": 4.0222, "text": "Devlog 7: Running before I can run For some reason, I felt like instead of finishing the syntax fundamentals, I would skip directly to object-oriented (ish) patterns. In this case, we have a bunch of attributes that can be accessed and modified. Below is a snippet of some OOP concepts in practice:"}, {"post_id": 46593, "ts": "2026-08-13T22:47:35Z", "hours": 2.6758, "text": "Devlog 6: {insert dark joke about lifetimes} I just spent a frustratingly long amount of time figuring out why Rust didn’t like my lifetimes. I don’t even remember what I did to make it compile. This was fun . However, after figuring that out, I wrote the walk methods for a few NodeType s. Here’s the stack after a simple program finishes, and the program that was run:"}, {"post_id": 45535, "ts": "2026-08-12T02:37:00Z", "hours": 3.505, "text": "Devlog 5: Operators I started work on the AST (abstract syntax tree) walking algorithm today. I didn’t get very far, but one of the things I did do was I fixed operator parsing. Before, if you were to parse something like 15 > 5 && 5 < 10 , it would have been a greater-than operator with a boolean operator as a child, and that doesn’t work. Therefore, I had to write some code to convert that broken operator into a boolean operator with mathematical children. The algorithm didn’t make much sense in my head, so I drew it out on paper and that made it pretty easy to write. Below is the illustration I made and the code it became."}, {"post_id": 44922, "ts": "2026-08-11T00:03:53Z", "hours": 3.7761, "text": "Devlog 4: I finished the parser! I wrote the parser, which takes the tokenized code and converts it into a usable, in-memory representation. After fixing the bugs from yesterday, I wrote some logic to parse a function block and the rest of the syntax was easy. Running main.rs now prints out a representation of a parsed AST. Now all I have to do is: make the AST walkable, so I can actually execute the code write logic to facilitate interop with Rust The first image is some example Ile code, and the second is some of the AST that is generated from it."}, {"post_id": 44391, "ts": "2026-08-10T03:09:12Z", "hours": 7.8347, "text": "Devlog 3: An almost-broken parser! I made a very basic AST parser! The AST (abstract syntax tree) is the in-memory representation of the code as a tree. This took a really long time. My machine froze and my interpreter produced incomprehensible errors about wanting a word token, but in the end cargo test passed, so I’m happy. It also doesn’t support anything other than function calls, but this is a great first step in creating an actually walkable AST."}, {"post_id": 39848, "ts": "2026-08-03T03:22:22Z", "hours": 1.7778, "text": "Devlog 2 I started work on the AST builder. I decided that the algorithm will use delimiters to decide which tokens correspond to which AST node and I’m working on a method for Node that determines how to add a child based on the Node ‘s type and the child’s type. The screenshot is some of the code for Node ."}, {"post_id": 39114, "ts": "2026-08-01T20:28:30Z", "hours": 7.0919, "text": "Devlog 1: Building blocks I’ve been focusing on the scripting language, Ile, because to be honest the editor is the boring part. So far, I have project structure and some fundamentals–I’ve written the tokenizer and some stack-switching logic. For those who don’t know, the tokenizer is responsible for taking a blob of (hopefully) human-readable source code and converting it into tokens , which are used later on to build an abstract syntax tree. For now, all I’m concerned about is that cargo test passes!"}]...
|
Title: Ile by @Leftie | Stardance
Devlogs:
Devlog Title: Ile by @Leftie | Stardance
Devlogs:
Devlog 1: Building blocks I’ve been focusing on the scripting language, Ile, because to be honest the editor is the boring part. So far, I have project structure and some fundamentals–I’ve written the tokenizer and some stack-switching logic. For those who don’t know, the tokenizer is responsible for taking a blob of (hopefully) human-readable source code and converting it into tokens , which are used later on to build an abstract syntax tree. For now, all I’m concerned about is that cargo test passes!
Devlog 2 I started work on the AST builder. I decided that the algorithm will use delimiters to decide which tokens correspond to which AST node and I’m working on a method for Node that determines how to add a child based on the Node ‘s type and the child’s type. The screenshot is some of the code for Node .
Devlog 3: An almost-broken parser! I made a very basic AST parser! The AST (abstract syntax tree) is the in-memory representation of the code as a tree. This took a really long time. My machine froze and my interpreter produced incomprehensible errors about wanting a word token, but in the end cargo test passed, so I’m happy. It also doesn’t support anything other than function calls, but this is a great first step in creating an actually walkable AST.
Devlog 4: I finished the parser! I wrote the parser, which takes the tokenized code and converts it into a usable, in-memory representation. After fixing the bugs from yesterday, I wrote some logic to parse a function block and the rest of the syntax was easy. Running main.rs now prints out a representation of a parsed AST. Now all I have to do is: make the AST walkable, so I can actually execute the code write logic to facilitate interop with Rust The first image is some example Ile code, and the second is some of the AST that is generated from it.
Devlog 5: Operators I started work on the AST (abstract syntax tree) walking algorithm today. I didn’t get very far, but one of the things I did do was I fixed operator parsing. Before, if you were to parse something like 15 > 5 && 5 < 10 , it would have been a greater-than operator with a boolean operator as a child, and that doesn’t work. Therefore, I had to write some code to convert that broken operator into a boolean operator with mathematical children. The algorithm didn’t make much sense in my head, so I drew it out on paper and that made it pretty easy to write. Below is the illustration I made and the code it became.
Devlog 6: {insert dark joke about lifetimes} I just spent a frustratingly long amount of time figuring out why Rust didn’t like my lifetimes. I don’t even remember what I did to make it compile. This was fun . However, after figuring that out, I wrote the walk methods for a few NodeType s. Here’s the stack after a simple program finishes, and the program that was run:
Devlog 7: Running before I can run For some reason, I felt like instead of finishing the syntax fundamentals, I would skip directly to object-oriented (ish) patterns. In this case, we have a bunch of attributes that can be accessed and modified. Below is a snippet of some OOP concepts in practice:
Devlog 8: We have language! If you couldn’t tell, that was a play on “we have liftoff!”. I didn’t add a rocket emoji, for obvious reasons. Anyway, I have great news: Ile is almost a usable language! Today, I added loops and operators, so it can iterate and do math now! My for loop is a tad different than other languages, so here’s the gist: every for loop has a condition and a block. Every iteration, the condition runs. If it returns something , the block runs. Otherwise, the loop exits. Because I made let statements return the value they assign, you can have syntax that looks like this : for let x = iterator.next() {} I’m really proud of how my syntax is turning out overall. There’s still not much to screenshot; I haven’t written the logic to interface with Rust, so there’s no println yet. I do have some more test coverage, though. There was some difficulty getting break to work, however. For some reason, the loop it was a part of would always keep going. Eventually, I figured out why: It was being removed from the stack at the end of the code block that generated it. To fix this, I added some logic to re-push it to the stack if it got popped.
Devlog 9: Hello, world! I didn’t do that much work for this devlog, but I did achieve 2 important things: Added comment support Added bindings to println!() and stdin This means that Ile, as demonstrated below, can now read its stdin and write to stdout !
Devlog 10: asdf I’ve been trying to add a GUI system to the standard library. Because I don’t want any dependencies, I came up with the following harebrained scheme: Write a Python script that formats its stdin in a Tkinter window to draw a GUI When the function to create a window is called, spawn Python as a sub-process and send the text to be displayed to its input via a pipe Unfortunately, this doesn’t work. The script works when run on its own, but when run by Ile it just doesn’t launch a window. I couldn’t figure this out, so the GUI system (VeBaGu, or Very Bad GUI) is staying, albeit in an unstable beta state. On a side note, I’ve also decided to ditch the editor idea and just focus on the language; this Stardance project is now just Ile, not Crocodile.
Devlog 11: I don’t even know I’m hoping to ship tomorrow, so I’m fixing up the language to be usable. I’ve been writing some documentation, so I have a little starter guide now. I also learned that Ile can use as little as one thirtieth the ram of Node.js! That’s definitely going in the features section.
Devlog 12: Scoping is hard I’ve been working on getting Ile ready to ship, and I had a small, significant feature to implement: scoping. This is basically when a function is called and uses the scope that it was a part of when it was created instead of the scope it was called in. This was hard . To implement this, my first thought was write yet another lookup function to find the correct module’s stack and walk the function in the stack. Unfortunately, the compiler didn’t like this. I couldn’t get it done without having 2 different mutable references to the stack at the same time, so it was off the table. What I ended up going for was when a function is called, it clones (memory-efficient, amirite?!) its entire scope and walks inside it. After the function executes, it then sets the value of its module’s scope to the current value of the scope it just walked in, so as to update it with any changes. Makes sense, right? RIGHT?! Anyway, there isn’t really a picture to show, so here’s tests passing.
Devlog 13: Ship time! I’ve been working on getting everything ready to ship, and I think it’s almost time! I’ve fixed some bugs, added more tests, published to crates.io , and created a GitHub release! Now, I’ll make sure I have good instructions in my README, and I’ll be ready to go!
Devlog 14: …oh So I’ve been doing my development on Ubuntu, which, as a Linux distro, is UNIX-based, and uses just \n for newlines. However, I haven’t done any testing on Windows, and Houston, we have a problem. I still don’t have all my ratings yet, but someone was kind enough to create a github issue saying that Ile doesn’t work on Windows. I hadn’t thought to support it, but Windows uses \r\n for newlines! This broke the tokenizer, and caused the language to be unusable on non-UNIX-based systems. It was a one-line fix, but I already have 10 ratings, so I can only hope they aren’t too negative for having bad Windows support.😟 P.S. I guess this means Windows is officially as outdated as a typewriter!
Ships:
I made Ile, an embedded scripting language! It uses a recursive descent parser to build an abstract syntax tree and then walks the tree to execute. The hardest part was when I would run into tiny little problems, like Rust giving lifetime errors, and not knowing how to solve them immediately. I’m proudest of the parsing logic. It’s the longest source file I’ve ever written, and it took awhile to figure out. To test Ile, you can download it from the GitHub releases and run some of its example programs....
|
1793519337.300334
|
1793605737.300334
|
|
52786
|
My first slack bot! by @aaradhyap | Stardance
|
aaradhyap
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T01:19:22Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a slackbot that can respond to various different commands. What was challenging is that I could not figure out for some reason why my commands were not working then I figured that I had to update them on slack API also! It can run commands like: /slackbot1-roll - this rolls a 6 sided die /slackbot1-ping just pings you back and shows the latency /slackbot1-coinflip Flip a coin and see if its heads or tails! /slackbot1-rps You can play rock, paper or scissors with the slackbot. Just type /slackbot1-rps (here type any one of rock, paper or scissors) /slackbot1-help Get help with all commands /slackbot1-catfact Get an interesting fact about cats. /slackbot1-joke Let it tell you a funny joke and make you laugh! But there is a lot more, so be sure to explore it using /slackbot1!", "repo": "https://github.com/AARADHYAPATEL/mycoolslackbot", "demo": "https://hackclub.slack.com/archives/C0P5NE354"}]...
|
[{"post_id": 53468, "ts": "202 [{"post_id": 53468, "ts": "2026-08-24T01:14:44Z", "hours": 0.3006, "text": "Made it run 24/7 on Nest!!!!"}, {"post_id": 52765, "ts": "2026-08-23T03:28:56Z", "hours": 0.2583, "text": "Adding a readme and other commands"}, {"post_id": 52753, "ts": "2026-08-23T02:57:06Z", "hours": 0.3464, "text": "Added and debugged working rock, paper and scissors"}, {"post_id": 52745, "ts": "2026-08-23T02:31:24Z", "hours": 0.2525, "text": "New bot command - slackbot1-roll"}]...
|
Title: My first slack bot! by @aaradhyap | Stardan Title: My first slack bot! by @aaradhyap | Stardance
Devlogs:
New bot command - slackbot1-roll
Added and debugged working rock, paper and scissors
Adding a readme and other commands
Made it run 24/7 on Nest!!!!
Ships:
I made a slackbot that can respond to various different commands. What was challenging is that I could not figure out for some reason why my commands were not working then I figured that I had to update them on slack API also! It can run commands like: /slackbot1-roll - this rolls a 6 sided die /slackbot1-ping just pings you back and shows the latency /slackbot1-coinflip Flip a coin and see if its heads or tails! /slackbot1-rps You can play rock, paper or scissors with the slackbot. Just type /slackbot1-rps (here type any one of rock, paper or scissors) /slackbot1-help Get help with all commands /slackbot1-catfact Get an interesting fact about cats. /slackbot1-joke Let it tell you a funny joke and make you laugh! But there is a lot more, so be sure to explore it using /slackbot1!...
|
1792878517.003985
|
1793742517.003985
|
|
45873
|
MorphOS by @Ommprakash | Stardance
|
Ommprakash
|
1
|
7.27
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T00:36:55Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a WebOS based on the mission guidelines of WebOS 1. The most challenging part was to make the window of apps dragable and resizable.", "repo": "https://github.com/ommprakash3102-dev/MorphOS", "demo": "https://morph-os-pi.vercel.app/"}]...
|
[{"post_id": 53678, "ts": "202 [{"post_id": 53678, "ts": "2026-08-24T10:57:06Z", "hours": 0.2703, "text": "Sup, I added a web browser and Files app to the web-os. When you will open the web-browser, it will show you a example.com page, then when you will type any url it will open that url in youre browser, and in the files app ypu can save and download the text file created in notes app. (You can also write a text file in that files app)"}, {"post_id": 53447, "ts": "2026-08-24T00:28:12Z", "hours": 1.7044, "text": "#Devlog6 Hey Guys, Its morning right now and I have completed My MorphOS#. It’s Live now you chack it out on this link “ https://morph-os-pi.vercel.app/ ”"}, {"post_id": 52396, "ts": "2026-08-22T14:49:56Z", "hours": 1.0389, "text": "#Devlog5 Hi, I was a tough week in school, so I couldn’t do a lot but; still this is the desktop. It’s not ready, I’m gonna add more apps, and setting and ship it today."}, {"post_id": 50963, "ts": "2026-08-20T13:07:54Z", "hours": 1.3917, "text": "#Devlog4 Hi, my friends (  ̄︶ ̄* ) ) . Sorry for not giving you an update on the desktop the previous night. But no worries😉 ; this afternoon, I animated and added a boot screen or loading screen to MorphOS and also A topbar to the desktop 😎. I planned the boot animation using GitHub Copilot and then implemented the exact idea in the code and got the animated boot screen. It took me almost 1 and a half hours!!!."}, {"post_id": 50454, "ts": "2026-08-19T16:49:39Z", "hours": 1.8914, "text": "#Devlog 3 Hey, I just started working on the desktop, you’ll see the design in 1-2hrs, stay tuned. Tommorrow I’ll add the apps then some Java Script. And done"}, {"post_id": 46393, "ts": "2026-08-13T15:56:01Z", "hours": 0.4936, "text": "#Devlog2 Hi, I was working on my other projects, so I couldn’t work on my WebOS for 4 days. BTW, the welcome screen is done but looks a bit AI-slop, so I’ll change that, and the desktop is coming soon. Stay tuned for more updates"}, {"post_id": 44019, "ts": "2026-08-09T14:49:07Z", "hours": 0.7039, "text": "#Devlog 1 I’ve started working on my web-based OS; I named it Morph OS, as it is going to have mostly Morphims effects. (Especially Glass Morphism). This is the logo. I’m working on the Desktop and apps, and it will live as a web os soon"}]...
|
Title: MorphOS by @Ommprakash | Stardance
Devlogs Title: MorphOS by @Ommprakash | Stardance
Devlogs:
#Devlog 1 I’ve started working on my web-based OS; I named it Morph OS, as it is going to have mostly Morphims effects. (Especially Glass Morphism). This is the logo. I’m working on the Desktop and apps, and it will live as a web os soon
#Devlog2 Hi, I was working on my other projects, so I couldn’t work on my WebOS for 4 days. BTW, the welcome screen is done but looks a bit AI-slop, so I’ll change that, and the desktop is coming soon. Stay tuned for more updates
#Devlog 3 Hey, I just started working on the desktop, you’ll see the design in 1-2hrs, stay tuned. Tommorrow I’ll add the apps then some Java Script. And done
#Devlog4 Hi, my friends (  ̄︶ ̄* ) ) . Sorry for not giving you an update on the desktop the previous night. But no worries😉 ; this afternoon, I animated and added a boot screen or loading screen to MorphOS and also A topbar to the desktop 😎. I planned the boot animation using GitHub Copilot and then implemented the exact idea in the code and got the animated boot screen. It took me almost 1 and a half hours!!!.
#Devlog5 Hi, I was a tough week in school, so I couldn’t do a lot but; still this is the desktop. It’s not ready, I’m gonna add more apps, and setting and ship it today.
#Devlog6 Hey Guys, Its morning right now and I have completed My MorphOS#. It’s Live now you chack it out on this link “ https://morph-os-pi.vercel.app/ ”
Sup, I added a web browser and Files app to the web-os. When you will open the web-browser, it will show you a example.com page, then when you will type any url it will open that url in youre browser, and in the files app ypu can save and download the text file created in notes app. (You can also write a text file in that files app)
Ships:
I made a WebOS based on the mission guidelines of WebOS 1. The most challenging part was to make the window of apps dragable and resizable....
|
1793324842.4852142
|
1793411242.4852142
|
|
51679
|
Aerodynamic stabilizing fin can by @aaravw2001 | S Aerodynamic stabilizing fin can by @aaravw2001 | Stardance...
|
aaravw2001
|
1
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T00:06:25Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an aerodynamic fin can! I plan to use this one later and instead print it again in PA12-CF. This is also my first ship, and first thing that I designed that I have also 3d printed! In retrospect, I think making the fins bigger would have been a good idea, but in open rocket(the rocket simulation software) it showed that the design should be fine, so I guess it is!", "repo": "https://github.com/HIIACODER/Aerodynamic-Fin-can", "demo": ""}]...
|
[{"post_id": 53437, "ts": "202 [{"post_id": 53437, "ts": "2026-08-23T23:51:31Z", "hours": 8.55, "text": "I finished 3d printing the fin can, and am finally done, getting ready to ship. probably my last entry."}, {"post_id": 52573, "ts": "2026-08-22T19:08:38Z", "hours": 1.0669, "text": "Sooo I simulated the fin shape, and tried to fix the fin can. Regrettably, was not able to fix the fin can yet, but the fin shape seemed perfectly fine in simulation"}, {"post_id": 51392, "ts": "2026-08-21T02:07:40Z", "hours": 0.7, "text": "Mostly done with the fin can. I am facing a problem with fillets, as they will not apply for some reason. I will be troubleshooting the problem for a while."}]...
|
Title: Aerodynamic stabilizing fin can by @aaravw2 Title: Aerodynamic stabilizing fin can by @aaravw2001 | Stardance
Devlogs:
Mostly done with the fin can. I am facing a problem with fillets, as they will not apply for some reason. I will be troubleshooting the problem for a while.
Sooo I simulated the fin shape, and tried to fix the fin can. Regrettably, was not able to fix the fin can yet, but the fin shape seemed perfectly fine in simulation
I finished 3d printing the fin can, and am finally done, getting ready to ship. probably my last entry.
Ships:
I made an aerodynamic fin can! I plan to use this one later and instead print it again in PA12-CF. This is also my first ship, and first thing that I designed that I have also 3d printed! In retrospect, I think making the fins bigger would have been a good idea, but in open rocket(the rocket simulation software) it showed that the design should be fine, so I guess it is!...
|
1793523002.6505368
|
1793609402.6505368
|
|
53422
|
KiberovCats by @shaz | Stardance
|
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-23T23:43:00Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made kiberovcats , its just a simple website about big cats like lions , tigers , leopards and jaguars . i wanted to make something simple for this mission so i didnt add a bunch of extra stuff . i mostly focused on making it look nice with the images and css and gave it a jungle kinda theme . the kinda challenging part was getting the layout right . like making the images and text look good together and also making it work on smaller screens . some of the css took a bit of messing around with until it looked how i wanted lol . other than that it was pretty simple . also did the github stuff , readme and deployed the website in the end .", "repo": "https://github.com/ahamedshaz961-gif/KiberovCats", "demo": "https://ahamedshaz961-gif.github.io/KiberovCats/"}]...
|
[{"post_id": 53425, "ts": "202 [{"post_id": 53425, "ts": "2026-08-23T23:32:31Z", "hours": 2.6247, "text": "added the css and finished up the readme . worked on the colours , spacing , images and the overall jungle look of the website . also added the readme with how to run it locally , the files and other needed info . kept everything pretty simple and clean .soo alldone ready to ship"}, {"post_id": 53308, "ts": "2026-08-23T19:33:57Z", "hours": 0.6372, "text": "edited the html today and added another section to the website . now it has 3 proper sections and it looks way better than before . also fixed some of the layout stuff while i was at it . pretty simple changes but its starting to actually look like a proper website now ."}, {"post_id": 53283, "ts": "2026-08-23T18:50:21Z", "hours": 0.9253, "text": "added the html and assets today . pretty easy peazy tbh . just made the basic html and added all the images into the images folder . also got the git repo connected and pushed the first commit . nothing too crazy yet , just getting the base ready for the rest of the website ."}]...
|
Title: KiberovCats by @shaz | Stardance
Devlogs:
Title: KiberovCats by @shaz | Stardance
Devlogs:
added the html and assets today . pretty easy peazy tbh . just made the basic html and added all the images into the images folder . also got the git repo connected and pushed the first commit . nothing too crazy yet , just getting the base ready for the rest of the website .
edited the html today and added another section to the website . now it has 3 proper sections and it looks way better than before . also fixed some of the layout stuff while i was at it . pretty simple changes but its starting to actually look like a proper website now .
added the css and finished up the readme . worked on the colours , spacing , images and the overall jungle look of the website . also added the readme with how to run it locally , the files and other needed info . kept everything pretty simple and clean .soo alldone ready to ship
Ships:
i made kiberovcats , its just a simple website about big cats like lions , tigers , leopards and jaguars . i wanted to make something simple for this mission so i didnt add a bunch of extra stuff . i mostly focused on making it look nice with the images and css and gave it a jungle kinda theme . the kinda challenging part was getting the layout right . like making the images and text look good together and also making it work on smaller screens . some of the css took a bit of messing around with until it looked how i wanted lol . other than that it was pretty simple . also did the github stuff , readme and deployed the website in the end ....
|
1792882132.1700537
|
1793746132.1700537
|