|
22372
|
LuxuryOS by @tonyx | Stardance
|
tonyx
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: LuxuryOS by @tonyx | Stardance
|
1793397035.567197
|
1794001835.567197
|
|
22559
|
Untitled by @tonyx | Stardance
|
tonyx
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @tonyx | Stardance
|
1793476102.7343833
|
1794080902.7343833
|
|
22560
|
NovaBIOS by @tonyx | Stardance
|
tonyx
|
1
|
0.4
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-20T13:21:31Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a fake BIOS ( a bootloader / little kernel ) which allows you to manage your device without worrying about hardware limitations, compatible with all CPUs.", "repo": "https://github.com/Juste1dev/NovaBIOS", "demo": "https://github.com/Juste1dev/NovaBIOS/releases/tag/NovaBIOS"}]...
|
[{"post_id": 12603, "ts": "202 [{"post_id": 12603, "ts": "2026-06-20T16:19:30Z", "hours": 0.3986, "text": "adding ascii-art for Hack-Club ❤️❤️"}, {"post_id": 12520, "ts": "2026-06-20T13:20:00Z", "hours": 0.3219, "text": "adding more devices"}]...
|
Title: NovaBIOS by @tonyx | Stardance
Devlogs:
ad Title: NovaBIOS by @tonyx | Stardance
Devlogs:
adding more devices
adding ascii-art for Hack-Club ❤️❤️
Ships:
This is a fake BIOS ( a bootloader / little kernel ) which allows you to manage your device without worrying about hardware limitations, compatible with all CPUs....
|
1793541038.5379987
|
1793627438.5379987
|
|
39000
|
A 3D Printable Shell for the Losi Baja Rey 1.0 by A 3D Printable Shell for the Losi Baja Rey 1.0 by @tonystarkofficial1111 | Stardance...
|
tonystarkofficial1111
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: A 3D Printable Shell for the Losi Baja Rey Title: A 3D Printable Shell for the Losi Baja Rey 1.0 by @tonystarkofficial1111 | Stardance...
|
1793227721.557333
|
1793832521.557333
|
|
39232
|
My own Personal Site by @tonystarkofficial1111 | S My own Personal Site by @tonystarkofficial1111 | Stardance...
|
tonystarkofficial1111
|
0
|
0.55
|
0
|
[]
|
[{"post_id": 34186, "ts": "202 [{"post_id": 34186, "ts": "2026-07-24T18:24:19Z", "hours": 0.545, "text": "Trying to add an image while being present in the event"}]...
|
Title: My own Personal Site by @tonystarkofficial1 Title: My own Personal Site by @tonystarkofficial1111 | Stardance
Devlogs:
Trying to add an image while being present in the event...
|
1793163201.4231942
|
1793768001.4231942
|
|
71805
|
Pi calculator by @tonystark27 | Stardance
|
tonystark27
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Pi calculator by @tonystark27 | Stardance
|
1793216828.6216996
|
1793821628.6216996
|
|
48755
|
Ai Vibe Coding Platform by @tonystark12 | Stardanc Ai Vibe Coding Platform by @tonystark12 | Stardance...
|
tonystark12
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Ai Vibe Coding Platform by @tonystark12 | S Title: Ai Vibe Coding Platform by @tonystark12 | Stardance...
|
1793245735.02
|
1793850535.02
|
|
34199
|
My very own WebOS by @tonyques | Stardance
|
tonyques
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @tonyques | Stardance
|
1793245820.836572
|
1793850620.836572
|
|
406
|
MemeBoard by @tonymac129 | Stardance
|
tonymac129
|
1
|
55.0
|
994
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-06T22:02:36Z", "hours": 55.0, "multiplier": 18.15, "payout": 994, "blessing": "neutral", "text": "I finally finished making MemeBoard after periodically working on it over the past 3 months! MemeBoard is an accessible and easy to use fullstack online social platform for posting, sharing, and exploring all kinds of memes. There are many different post interaction features such as voting, commenting, saving, reacting, and sharing, it’s essentially a simple Reddit clone that’s exclusively for memes. You can browse, filter, and search through memes easily by choosing different sorting options and exploring the different tags and collections. It also has social features like following users and customizing your profile, as well as a full-featured realtime chat (mini Discord clone) where you can send content and chat with your friends or interact with MemeBot (which is not an LLM, it’s just a random thing I thought was fun to implement)! The entire website is also fully responsive and functional on all screen sizes with smooth loading and transition animations, and you can toggle between dark and light modes. I got bored of the project halfway through it to work on other stuff, but I ended up coming back more than a month later to finally finish everything and polish it to ship, and the final result is definitely very satisfying and rewarding for me, hopefully you’ll like it :)", "repo": "https://github.com/tonymac129/memeboard", "demo": "https://memeboard-app.vercel.app"}]...
|
[{"post_id": 63210, "ts": "202 [{"post_id": 63210, "ts": "2026-09-06T21:49:05Z", "hours": 1.5575, "text": "Final MemeBoard devlog! I finally finished MemeBoard after working on it over the past 3 months! I’ve implemented all the features I originally planned to make, as well as added a ton of other stuff to make the project interesting and fun to use I mostly just polished the project in this update, so there isn’t actually anything new other than the simple “m” logo/favicon I added to the nav bar and footer Added a top loading bar indicator to show the page is responsive and is actively loading since some pages take a bit of time to fetch data, and I’m too lazy to implement suspense/loading skeleton and all that Clicking on things that require the user to be signed in now redirects you to the sign in page so it’s more user friendly and not confusing Updated the README to document detailed information, all the features, setup instructions, and everything else about the project Fixed an annoying issue where MemeBot didn’t respond at all or took a long time by simply deleting an intentional timeout and the bug was somehow fixed Updated styling and layout components"}, {"post_id": 62607, "ts": "2026-09-06T02:31:58Z", "hours": 3.0308, "text": "Meme reactions, animations, and polishing Added reactions to memes (kind of similar to Reddit awards) so you can now choose an emoji to express what you think about the meme! There is a new React button on the meme bar that opens an emoji selection menu that lets you choose your reaction. You can see all the meme’s reactions sorted by number of users listed below the bar and can click on them to switch your reaction or unreact (since you can only react once) Reactions are anonymous, so you can only see the number of reactions with your own reaction highlighted Added subtle page transition animations to the layout and individual components to make navigation and user interactions a lot smoother and more aesthetically pleasing Added a 404 not found page with an occasional stylized glitching effect and buttons to go home or go back Added more detailed and dynamically generated OpenGraph metadata to improve SEO Updated backend Prisma schema and migrated database Updated types and styling Fixed a few display, light mode, and responsive design bugs MemeBoard is almost finished, it’ll probably be ready to ship after one final devlog and some polishing touches!!!"}, {"post_id": 61608, "ts": "2026-09-04T16:23:00Z", "hours": 1.9592, "text": "Light mode toggle Added a button on the nav bar that toggles the site’s entire appearance between dark and light mode to improve its customizability and accessibility Because every component has a default color transition, switching between the 2 modes has a smooth UI transition instead of flashing to the other color instantly I had to set up the theme provider and manually add the light mode Tailwind classes and the dark mode prefix for all the colors in every page and component, so this took quite a long time but the result was worth it, both modes look pretty consistent and visually appealing"}, {"post_id": 59928, "ts": "2026-09-01T23:23:11Z", "hours": 3.3867, "text": "MemeBoard is back!!! I’ve been a lazy bum this entire summer and didn’t finish a single one of my more serious projects on Stardance before losing interest and moving on to a new idea, but now that the event is ending in a month (nooo ) I finally forced myself to come back and finish up/ship my old projects one by one School just started so I’ll hopefully still have enough time to ship most of my projects before October. Since no one has used MemeBoard at all in over 2 months, I had to upgrade some packages, resetup some deployment stuff, and reactivate the databases for everything to function normally I also spent some time getting familiar with the codebase again, so I didn’t make a lot of changes this update. I added a few quality of life features like sharing/reporting comments, homepage meme and chat sections, and user search for finding people to follow When you click on share for a comment, the share modal pops up listing all your friends that you can select to send the comment and a message to, as well as options to copy the link and to report it Comments show up as embedded text with the user and like count displayed, and clicking on it takes you to its location on the original meme page for easy viewing (definitely not stolen from TikTok ) When you click on add user on the chat page, it shows a modal where you can use the API to search for people to add as friends, making chatting and sharing memes more convenient Added recent, top, all time, friend memes, and recent chat sections to the homepage to make navigating the platform and browsing memes easier Added call to action buttons on the homepage hero to make using the site more intuitive Updated content and styling Updated MemeBot behavior Updated README Fixed chat deployment issue Did some miscellaneous stuff/improvements/fixes that I forgot"}, {"post_id": 19564, "ts": "2026-06-30T21:50:01Z", "hours": 2.1125, "text": "More collections features You can now search, sort, and filter collections on the collections page to browse and explore public collections other people created! You can filter your friends’ and your own collections to make managing them easier You can now add an optional description describing what your collection is about, either on the add or edit collection modal You can now change the visibility of your collection to be either public or private, where public collections are displayed on your profile and the collections page for everyone to see, and only you can see your own private collections Added a new private collections section on your profile that only you can see it Added a create collection modal that shows up when you click on the button on the collections page to make creating collections easier Added a create tag modal that shows up when you click on the button on the tags page, but unlike collections you can only put the name of the tag since that’s the only thing a tag has Updated schema and types Updated styling and SEO"}, {"post_id": 17714, "ts": "2026-06-28T17:01:30Z", "hours": 2.5683, "text": "MemeBot & bug fixes Added MemeBot to everyone’s chat, so even if you haven’t friended someone on the platform you can still try out all the chat features since MemeBot also sends messages in realtime MemeBot isn’t actually another AI chatbot or anything, it just responds with a random hardcoded string message (very intelligent, i know) from the backend whenever a user sends it a message after a certain delay to simulate realtime chatting Since MemeBot isn’t actually a user, I had to modify the chatting system quite a bit and put a lot of extra conditionals and logic to ensure it works properly for both MemeBot and real users, and that was quite annoying to figure out Fixed an annoying caching bug where you had to refresh the entire chat page for realtime interactions to work properly when chatting with someone for the first time, otherwise the chat just froze. This took a long time to fix, but the UX is finally smooth and works well Fixed some issues of the chat related to auth and not being logged in Updated styling"}, {"post_id": 17111, "ts": "2026-06-27T19:43:00Z", "hours": 1.7958, "text": "Random quality of life features I think I’m almost finished with MemeBoard, so now I’m just making random small features that I skipped over earlier Added realtime chat message previews for each of your chats that shows the last message and who sent it on the left sidebar so it feels more like Discord and Slack Added a tag filtering dropdown on the Memes page where you can see all the tags, search for them, and choose one to see all the memes labeled with that tag. This makes it a lot easier to browse, filter, and find similar memes Added an options menu button to the tag page (that only shows if you’re the one who made the tag) similar to the button I added to a bunch of other pages. When clicked, it shows a menu with just a delete option that deletes the tag and removes its label from all the memes after a confirmation modal Added both dynamically generated SEO and static SEO to some pages that didn’t have it Updated styling and navigation"}, {"post_id": 16679, "ts": "2026-06-27T03:33:33Z", "hours": 2.7094, "text": "Collection features & cleanup Similar to the meme page, when you view the page of a collection you created, there is an options icon that when clicked, opens a menu where you can edit or delete the collection If you press on edit, an edit modal pops up where you can edit the name and select which memes should be in the collection If you press on delete, a warning modal shows up, and if you press delete the collection will be permanently deleted Added a search bar on the main collections page where you can search for your own or other people’s collections Added the collections tab to the main nav bar and the footer to improve navigation You can now add a short public about me bio on your profile by clicking on the edit profile button that shows an input edit modal When you hover over your own messages, a delete button now shows up that lets you delete the message for both of you after a confirmation modal just like all the other delete functionalities You can undo the deletion by pressing on the undo button that shows up, which restores the message for both of you I spent most of my time on MemeBoard developing while logged in, so I wasn’t aware most of my pages were completely broken and returning errors if someone visited them while not being logged in, so I implemented a ton of conditionals and permission stuff for auth to make sure every page works properly or redirects to the login page When you’re not logged in, you can still use the app and browse memes, it’s just that a lot of features are unavailable Updated backend schema and types Updated styling Fixed a few bugs and issues caused by auth"}, {"post_id": 15440, "ts": "2026-06-25T03:01:05Z", "hours": 1.8839, "text": "Responsive design Finally added responsive design to all pages on the platform so MemeBoard works properly and the layout stays organized and visually appealing for all screen sizes! Added a menu button that shows up when the screen size is smaller than a certain width, which when clicked opens a sidebar that slides in from the left containing all the links. This declutters the layout while improving the UX of the app Added a search bar to the tags page where you can search all the tags people created and browse memes more easily Refactored code for some UI elements to make everything more optimized and clean Fixed chat layout UI breaking with excessively long messages Added some minor styling adjustments"}, {"post_id": 13355, "ts": "2026-06-21T21:30:32Z", "hours": 4.0244, "text": "Editing/deleting posts & more chat features! Added an option button on the top right of the meme pages you posted which when clicked displays a menu that lets you edit or delete the post Clicking on the edit option takes you to a dedicated post editing page where you can edit the title, tags, description, and source link and reupload the image of the meme (metadata, comments, and everything else remains unchanged), and clicking save takes you back to the newly edited page Clicking on the delete option shows a confirmation modal/dialog warning you, and if you press delete all the meme’s data will be permanently deleted and you get redirected back to the memes pages A similar option menu button is also added to the top right corner of your comment, where you can edit (a modal with an edit input field and buttons shows up) or delete (also has a confirmation dialog) the comment You can now also edit your own messages (only the text and not what you’re replying or the embedded meme), when you click on the edit message button a modal with an edit input pops up, and the edited message is updated in realtime You can now react to both yours or your friends messages to express what you think! When you click on the react button an emoji menu shows up where you can browse for the emoji you want Reactions and their counters update in realtime and you can remove the reaction by clicking on it again (the feature works exactly how all messaging apps’ reactions work) After you press on the share meme button when sharing to a friend, the button now becomes a link that takes you to the chat where you can see the message Updated schema and types Updated styling I kinda forgot to make more devlogs again, so this one is another massive wall of text covering a ton of different features. The video is also 2 minutes so I had to compress it to upload 😭 I promise I’ll try to keep future devlogs shorter and more focused :)"}, {"post_id": 12330, "ts": "2026-06-20T03:35:53Z", "hours": 3.5969, "text": "Meme sharing and more chat features! I sort of got carried away with this chat feature thing so MemeBoard is now a weird combination of Reddit and Discord instead of the original meme platform I planned it to be When you click on the share button on a meme page and open the sharing modal, you can now see all your friends listed and you can select who to send the meme to, as well as an optional message This actually sends a message to the chat with your friend, and it shows up as an embedded preview meme with its creator, title, image, and number of likes/comments/shares displayed Clicking on the embed preview takes you to the actual meme page Added chat replies so when you click on the reply button next to your friend’s message, a box shows up above the input field showing the message you’re currently replying to When you send the message, a reply bar/message preview similar to Discord’s shows up above the message, and clicking on it scrolls the page to the original message and briefly highlights it, similar to Discord’s Messages are grouped together so message header info (sender, time, profile image…) only shows under certain circumstances (similar to Discord) for a cleaner and better UI Refactored how messages and their components are rendered/structured for better optimization and performance Added an API route for client components to fetch meme data from the database Updated schema and types Updated the styling of different chat pages I forgot to make devlogs, so this devlog is pretty long Sorry again for the terrible layout in the video, my lazy bum hasn’t started on responsive styling yet, so the windows are compressed"}, {"post_id": 9670, "ts": "2026-06-16T02:34:11Z", "hours": 3.5231, "text": "Massive update: chat Added realtime chat where you can send and receive text messages with almost no latency to/from your friends on MemeBoard! The base layout of all the chat pages has a sidebar of the left that displays all your friends, and clicking on them takes you to the different direct message channels On each chat channel page, you can see your friend’s profile picture, username, and number of followers/following at the top, similar to TikTok’s chat Your friend’s messages show up on the left while yours are highlighted and on the right, similar to texts, and each message has a timestamp Integrated a Redis database for quick message retrieval, caching, and ease of use for the Upstash realtime library that uses Web Socket under the hood to push realtime updates/events to send and update messages in realtime I already made a much simpler chat app but with a slightly different backend stack a while ago, so it wasn’t that difficult rewriting everything in Next.js and adding additional features There are actually a lot of considerations and logic that go into making a chat app that you normally wouldn’t think of unless building your own chat, so this was an interesting and fun experience coming up with solutions for unexpected problems Updated schema and types I’ll actually optimize the site and implement responsive design after the main app is finished, so the current layout looks terrible on small screens and I apologize for the terrible layout in the video"}, {"post_id": 8477, "ts": "2026-06-14T03:08:02Z", "hours": 2.3269, "text": "Searching, sorting, and filtering memes Added a search bar, a sorting dropdown, a filtering by time and creator dropdown, a tag dropdown (doesn’t work yet, coming soon), and a number of items dropdown on the explore memes page to make finding and browsing new memes a lot more easier The search bar searches by the meme’s title and only searches when you submit the form to improve performance You can sort by best, which sorts by positive/negative vote ratio, top, which sorts by raw upvote count, and new, which sorts by recency You can filter by time range (now, day, week, and all), memes your friends posted, and memes you posted You can choose to show 5, 10, 25, or 50 memes at a time Added a custom dropdown component for the dropdowns with nice UX MemeBoard is now even closer to being a Reddit clone, I took a lot of inspiration from its features except my sorting/filtering is mainly frontend, which is not good practice but I’m too lazy to implement API endpoints for fetching memes Refactored the upvoting/downvoting component and logic so it directly communicates with the backend rather than using a hook to make it more modular and performant Meme cards now show the voting component and vote count I’m almost finished with the meme aspect of this project, the next big part is the realtime chat and sharing with friends and MemeBoard will be finished! I should probably stop using aura monster as the test meme, it’s starting to become corny :("}, {"post_id": 7915, "ts": "2026-06-13T06:13:24Z", "hours": 2.0725, "text": "Comment likes and replies You can now like meme comments (and comment replies since they’re counted as normal comments) by clicking on the heart icon on each comment You can also see how many people liked the comment When you click on the reply option on a comment, an input field for your reply and post/cancel buttons show up for you to post your reply The replies show up as nested inside their parent comments to show the discussion flow, and you can technically thread replies infinite levels deep Spent a ton of time trying to figure out how to generate the threaded tree structure, tried recursion and loops and ended up using hashmaps and pointers to nest parent/child comments (I was not locked in while making the algorithm because of the finals I was going to have the next day) Updated schema and styling"}, {"post_id": 7104, "ts": "2026-06-11T21:33:21Z", "hours": 2.1169, "text": "Collection pages, sharing, and reporting Added a main collection tab that displays all the meme collections users created (not just yours), and you can access the page with a header link on the profile page Each collection card either shows a gray rectangle if there’s no meme or a stack of images with a preview image on top if there’s multiple memes When you click on a collection, it takes you to its own page where its name, creator, and all the memes are displayed Collections a user created are also displayed on their profile page in a new section The share button shows a sharing modal where you can either share the meme to your friends (doesn’t work yet, will be integrated with chat), copy the link and send it somewhere else, or report it If you choose report or click on the report option, another modal shows up where you can select report reasons and provide additional feedback Added new schemas and types Updated navigation and styling"}, {"post_id": 6006, "ts": "2026-06-10T02:14:13Z", "hours": 1.4364, "text": "Additions & Changes Added saving memes to collections so other than voting you can curate, organize, and categorize your own custom lists of memes! When you click on the save option, a modal pops up showing collections you created and a button that lets you add new collections, as well as a search bar for the collections You can also see how many memes are currently saved in the selections When you click save, the option shows the saved state and displays how many collections the meme is saved in You can only save memes to collections you created Added a new user profile section for collections, but it currently doesn’t show anything yet Updated schema and types and learned some new relational database and Prisma concepts"}, {"post_id": 5957, "ts": "2026-06-09T23:41:13Z", "hours": 1.2425, "text": "Additions & Changes Added a voting system for memes (sort of like a rip off Reddit) where you can upvote, downvote, or remove your vote by clicking on the arrows You can also see the total vote count of the meme in real time to see its popularity The upvote/downvote buttons are displayed below the meme, along with the save and share buttons that will work soon Added an optional original source field for posting a meme to link where you got the original image from A link icon now shows up on the meme page if you provided the source link so people can see the original post and author Updated styling and navigation Updated schema and types"}, {"post_id": 5253, "ts": "2026-06-08T23:28:07Z", "hours": 0.9344, "text": "Additions & Changes When you click on a user’s followers and following on their profile page, a new modal pops up with 2 tabs, followers and following, that shows the accounts they’re currently following/being followed There’s also a search bar that lets you search through the listed users to find people more easily and makes it feel a lot more like Instagram If you are following someone who follows you back (mutual follows), you are automatically added as friends, which shows up as a section on the main profile display area You will be able to send messages through a real-time chat with friends in the future! Added the chat tab that’s just a placeholder page for now Added dynamic SEO Updated navigation and styling"}, {"post_id": 4630, "ts": "2026-06-08T00:46:10Z", "hours": 1.3575, "text": "Additions & Changes You can now edit your account information and customize your own profile by clicking on the edit profile button on the page, which shows a edit form modal! You can change your display name to anything you want, your username to anything that’s not already taken (since it’s used as the param account identifier), and upload a custom profile image (PNG, JPG, and GIF are all accepted) You can also follow and unfollow other users by clicking on the follow button on their profile page, making the platform feel more like a social media/community If you and another account are following each other mutually, you will become friends and unlock additional features (coming soon!) Refactored some code to make everything more modular and optimized"}, {"post_id": 4558, "ts": "2026-06-07T22:03:14Z", "hours": 1.5661, "text": "Additions and Changes Added the tags tab which displays all the tags created on the platform, and each tag has a number showing the number of memes it has and takes you to its own page with its memes displayed Added individual tag pages that shows all the memes categorized under a tag and the user that created it Added the meme card component that shows the meme’s title, author, upload date, and image, and clicking on it takes you to the meme page Features like filtering, sorting, and searching for memes for a specific tag are coming soon! Added user pages that takes in a user’s username as the param and displays the account’s memes and other data If you’re viewing your own profile, you can see options for signing out, deleting the account (with a confirmation dialog), and editing the profile Username is used as param instead of user id to be more human friendly Added static and dynamically generated SEO for the new pages Updated the navigation bar and footer links Removed the profile page since it got replaced by the user page"}, {"post_id": 3298, "ts": "2026-06-06T04:56:02Z", "hours": 2.5442, "text": "Additions & Changes This is a pretty big update, so a lot of stuff has been added and improved :) Added comments so signed in users can post plaintext comments using the comment field under every meme Comment threading and liking will be added soon to milk more hours improve community engagement features You can also see other people’s comments, see when it’s posted, and go to their profile A signin button is shown instead of the comment box if you’re not signed in Improved tags a lot, you can now add custom tags and use either the main ones (marked by a star icon) or custom tags other people or you created to make categorization easier Added input validation and required fields for posting memes to prevent errors Added and updated a lot of models and types to make everything more type safe and complete Updated navigation and styling This is my 5th time trying to post this devlog, I had to compress the video hopefully it works this time"}, {"post_id": 2545, "ts": "2026-06-05T02:49:37Z", "hours": 1.635, "text": "Additions & Changes Added file storage/upload and made the backend for posting a meme work so you can now actually upload an image, give it a name and description, assign it tags, and post it as its own public page! Learned how to work with UploadThing and used it as MemeBoard’s file storage service Added the meme page that fetches and shows all the meme’s data as well as who posted it, with a link to their profile (to be implemented) The meme page also generates SEO dynamically Added the memes page that’s just a placeholder for now where you will be able to browse through and explore all the memes Added a meme Prisma model with a user relation as well as custom types Improved navigation, redirects, and overall user experience Happy birthday daniel (I’m not a larper I watched the entirety of Peak:Zero)"}, {"post_id": 2457, "ts": "2026-06-04T23:08:36Z", "hours": 1.9033, "text": "Additions & Changes Added a post page with a beautiful form where you can input a title, select tags, upload PNG, JPG, or GIF, and provide a description for your meme You can search for tags in the custom tag selection modal that pops up when you click on the select tags button or one of the tags Added the meme type and updated some other types and auth stuff Added a simple footer with credits, navigation links, and the GitHub link The post page doesn’t work yet, it’s just a pretty frontend component (for now) Updated styling My future devlogs will all follow this bullet list format (hopefully the markdown layout turns out alright) to improve readability and storytelling :)"}, {"post_id": 1743, "ts": "2026-06-03T22:36:02Z", "hours": 2.0625, "text": "Basically finished the entire auth system with the Better Auth library, and users can now both sign in and sign up with credentials (email, username, display name, and password) or from a social provider using OAuth (Google and GitHub). I haven’t set up this library or the OAuth services in quite a while so I had to spend some time refiguring everything out and configuring all the different stuff. A username is also automatically assigned if you sign up with email. Added a backend and connected the Neon Postgres database as well."}, {"post_id": 1150, "ts": "2026-06-03T00:12:57Z", "hours": 1.4411, "text": "My first devlog on Stardance!!! Time to work my butt off this entire summer :) I’m making this meme exploring/sharing platform where you can browse the most popular memes or upload them yourself. I set up the basic Next.js project and the dependencies, added some pages and components, and made a pretty nice login/signup form (nothing works right now). Also deployed the site on Vercel."}]...
|
Title: MemeBoard by @tonymac129 | Stardance
Devlo Title: MemeBoard by @tonymac129 | Stardance
Devlogs:
My first devlog on Stardance!!! Time to work my butt off this entire summer :) I’m making this meme exploring/sharing platform where you can browse the most popular memes or upload them yourself. I set up the basic Next.js project and the dependencies, added some pages and components, and made a pretty nice login/signup form (nothing works right now). Also deployed the site on Vercel.
Basically finished the entire auth system with the Better Auth library, and users can now both sign in and sign up with credentials (email, username, display name, and password) or from a social provider using OAuth (Google and GitHub). I haven’t set up this library or the OAuth services in quite a while so I had to spend some time refiguring everything out and configuring all the different stuff. A username is also automatically assigned if you sign up with email. Added a backend and connected the Neon Postgres database as well.
Additions & Changes Added a post page with a beautiful form where you can input a title, select tags, upload PNG, JPG, or GIF, and provide a description for your meme You can search for tags in the custom tag selection modal that pops up when you click on the select tags button or one of the tags Added the meme type and updated some other types and auth stuff Added a simple footer with credits, navigation links, and the GitHub link The post page doesn’t work yet, it’s just a pretty frontend component (for now) Updated styling My future devlogs will all follow this bullet list format (hopefully the markdown layout turns out alright) to improve readability and storytelling :)
Additions & Changes Added file storage/upload and made the backend for posting a meme work so you can now actually upload an image, give it a name and description, assign it tags, and post it as its own public page! Learned how to work with UploadThing and used it as MemeBoard’s file storage service Added the meme page that fetches and shows all the meme’s data as well as who posted it, with a link to their profile (to be implemented) The meme page also generates SEO dynamically Added the memes page that’s just a placeholder for now where you will be able to browse through and explore all the memes Added a meme Prisma model with a user relation as well as custom types Improved navigation, redirects, and overall user experience Happy birthday daniel (I’m not a larper I watched the entirety of Peak:Zero)
Additions & Changes This is a pretty big update, so a lot of stuff has been added and improved :) Added comments so signed in users can post plaintext comments using the comment field under every meme Comment threading and liking will be added soon to milk more hours improve community engagement features You can also see other people’s comments, see when it’s posted, and go to their profile A signin button is shown instead of the comment box if you’re not signed in Improved tags a lot, you can now add custom tags and use either the main ones (marked by a star icon) or custom tags other people or you created to make categorization easier Added input validation and required fields for posting memes to prevent errors Added and updated a lot of models and types to make everything more type safe and complete Updated navigation and styling This is my 5th time trying to post this devlog, I had to compress the video hopefully it works this time
Additions and Changes Added the tags tab which displays all the tags created on the platform, and each tag has a number showing the number of memes it has and takes you to its own page with its memes displayed Added individual tag pages that shows all the memes categorized under a tag and the user that created it Added the meme card component that shows the meme’s title, author, upload date, and image, and clicking on it takes you to the meme page Features like filtering, sorting, and searching for memes for a specific tag are coming soon! Added user pages that takes in a user’s username as the param and displays the account’s memes and other data If you’re viewing your own profile, you can see options for signing out, deleting the account (with a confirmation dialog), and editing the profile Username is used as param instead of user id to be more human friendly Added static and dynamically generated SEO for the new pages Updated the navigation bar and footer links Removed the profile page since it got replaced by the user page
Additions & Changes You can now edit your account information and customize your own profile by clicking on the edit profile button on the page, which shows a edit form modal! You can change your display name to anything you want, your username to anything that’s not already taken (since it’s used as the param account identifier), and upload a custom profile image (PNG, JPG, and GIF are all accepted) You can also follow and unfollow other users by clicking on the follow button on their profile page, making the platform feel more like a social media/community If you and another account are following each other mutually, you will become friends and unlock additional features (coming soon!) Refactored some code to make everything more modular and optimized
Additions & Changes When you click on a user’s followers and following on their profile page, a new modal pops up with 2 tabs, followers and following, that shows the accounts they’re currently following/being followed There’s also a search bar that lets you search through the listed users to find people more easily and makes it feel a lot more like Instagram If you are following someone who follows you back (mutual follows), you are automatically added as friends, which shows up as a section on the main profile display area You will be able to send messages through a real-time chat with friends in the future! Added the chat tab that’s just a placeholder page for now Added dynamic SEO Updated navigation and styling
Additions & Changes Added a voting system for memes (sort of like a rip off Reddit) where you can upvote, downvote, or remove your vote by clicking on the arrows You can also see the total vote count of the meme in real time to see its popularity The upvote/downvote buttons are displayed below the meme, along with the save and share buttons that will work soon Added an optional original source field for posting a meme to link where you got the original image from A link icon now shows up on the meme page if you provided the source link so people can see the original post and author Updated styling and navigation Updated schema and types
Additions & Changes Added saving memes to collections so other than voting you can curate, organize, and categorize your own custom lists of memes! When you click on the save option, a modal pops up showing collections you created and a button that lets you add new collections, as well as a search bar for the collections You can also see how many memes are currently saved in the selections When you click save, the option shows the saved state and displays how many collections the meme is saved in You can only save memes to collections you created Added a new user profile section for collections, but it currently doesn’t show anything yet Updated schema and types and learned some new relational database and Prisma concepts
Collection pages, sharing, and reporting Added a main collection tab that displays all the meme collections users created (not just yours), and you can access the page with a header link on the profile page Each collection card either shows a gray rectangle if there’s no meme or a stack of images with a preview image on top if there’s multiple memes When you click on a collection, it takes you to its own page where its name, creator, and all the memes are displayed Collections a user created are also displayed on their profile page in a new section The share button shows a sharing modal where you can either share the meme to your friends (doesn’t work yet, will be integrated with chat), copy the link and send it somewhere else, or report it If you choose report or click on the report option, another modal shows up where you can select report reasons and provide additional feedback Added new schemas and types Updated navigation and styling
Comment likes and replies You can now like meme comments (and comment replies since they’re counted as normal comments) by clicking on the heart icon on each comment You can also see how many people liked the comment When you click on the reply option on a comment, an input field for your reply and post/cancel buttons show up for you to post your reply The replies show up as nested inside their parent comments to show the discussion flow, and you can technically thread replies infinite levels deep Spent a ton of time trying to figure out how to generate the threaded tree structure, tried recursion and loops and ended up using hashmaps and pointers to nest parent/child comments (I was not locked in while making the algorithm because of the finals I was going to have the next day) Updated schema and styling
Searching, sorting, and filtering memes Added a search bar, a sorting dropdown, a filtering by time and creator dropdown, a tag dropdown (doesn’t work yet, coming soon), and a number of items dropdown on the explore memes page to make finding and browsing new memes a lot more easier The search bar searches by the meme’s title and only searches when you submit the form to improve performance You can sort by best, which sorts by positive/negative vote ratio, top, which sorts by raw upvote count, and new, which sorts by recency You can filter by time range (now, day, week, and all), memes your friends posted, and memes you posted You can choose to show 5, 10, 25, or 50 memes at a time Added a custom dropdown component for the dropdowns with nice UX MemeBoard is now even closer to being a Reddit clone, I took a lot of inspiration from its features except my sorting/filtering is mainly frontend, which is not good practice but I’m too lazy to implement API endpoints for fetching memes Refactored the upvoting/downvoting component and logic so it directly communicates with the backend rather than using a hook to make it more modular and performant Meme cards now show the voting component and vote count I’m almost finished with the meme aspect of this project, the next big part is the realtime chat and sharing with friends and MemeBoard will be finished! I should probably stop using aura monster as the test meme, it’s starting to become corny :(
Massive update: chat Added realtime chat where you can send and receive text messages with almost no latency to/from your friends on MemeBoard! The base layout of all the chat pages has a sidebar of the left that displays all your friends, and clicking on them takes you to the different direct message channels On each chat channel page, you can see your friend’s profile picture, username, and number of followers/following at the top, similar to TikTok’s chat Your friend’s messages show up on the left while yours are highlighted and on the right, similar to texts, and each message has a timestamp Integrated a Redis database for quick message retrieval, caching, and ease of use for the Upstash realtime library that uses Web Socket under the hood to push realtime updates/events to send and update messages in realtime I already made a much simpler chat app but with a slightly different backend stack a while ago, so it wasn’t that difficult rewriting everything in Next.js and adding additional features There are actually a lot of considerations and logic that go into making a chat app that you normally wouldn’t think of unless building your own chat, so this was an interesting and fun experience coming up with solutions for unexpected problems Updated schema and types I’ll actually optimize the site and implement responsive design after the main app is finished, so the current layout looks terrible on small screens and I apologize for the terrible layout in the video
Meme sharing and more chat features! I sort of got carried away with this chat feature thing so MemeBoard is now a weird combination of Reddit and Discord instead of the original meme platform I planned it to be When you click on the share button on a meme page and open the sharing modal, you can now see all your friends listed and you can select who to send the meme to, as well as an optional message This actually sends a message to the chat with your friend, and it shows up as an embedded preview meme with its creator, title, image, and number of likes/comments/shares displayed Clicking on the embed preview takes you to the actual meme page Added chat replies so when you click on the reply button next to your friend’s message, a box shows up above the input field showing the message you’re currently replying to When you send the message, a reply bar/message preview similar to Discord’s shows up above the message, and clicking on it scrolls the page to the original message and briefly highlights it, similar to Discord’s Messages are grouped together so message header info (sender, time, profile image…) only shows under certain circumstances (similar to Discord) for a cleaner and better UI Refactored how messages and their components are rendered/structured for better optimization and performance Added an API route for client components to fetch meme data from the database Updated schema and types Updated the styling of different chat pages I forgot to make devlogs, so this devlog is pretty long Sorry again for the terrible layout in the video, my lazy bum hasn’t started on responsive styling yet, so the windows are compressed
Editing/deleting posts & more chat features! Added an option button on the top right of the meme pages you posted which when clicked displays a menu that lets you edit or delete the post Clicking on the edit option takes you to a dedicated post editing page where you can edit the title, tags, description, and source link and reupload the image of the meme (metadata, comments, and everything else remains unchanged), and clicking save takes you back to the newly edited page Clicking on the delete option shows a confirmation modal/dialog warning you, and if you press delete all the meme’s data will be permanently deleted and you get redirected back to the memes pages A similar option menu button is also added to the top right corner of your comment, where you can edit (a modal with an edit input field and buttons shows up) or delete (also has a confirmation dialog) the comment You can now also edit your own messages (only the text and not what you’re replying or the embedded meme), when you click on the edit message button a modal with an edit input pops up, and the edited message is updated in realtime You can now react to both yours or your friends messages to express what you think! When you click on the react button an emoji menu shows up where you can browse for the emoji you want Reactions and their counters update in realtime and you can remove the reaction by clicking on it again (the feature works exactly how all messaging apps’ reactions work) After you press on the share meme button when sharing to a friend, the button now becomes a link that takes you to the chat where you can see the message Updated schema and types Updated styling I kinda forgot to make more devlogs again, so this one is another massive wall of text covering a ton of different features. The video is also 2 minutes so I had to compress it to upload 😭 I promise I’ll try to keep future devlogs shorter and more focused :)
Responsive design Finally added responsive design to all pages on the platform so MemeBoard works properly and the layout stays organized and visually appealing for all screen sizes! Added a menu button that shows up when the screen size is smaller than a certain width, which when clicked opens a sidebar that slides in from the left containing all the links. This declutters the layout while improving the UX of the app Added a search bar to the tags page where you can search all the tags people created and browse memes more easily Refactored code for some UI elements to make everything more optimized and clean Fixed chat layout UI breaking with excessively long messages Added some minor styling adjustments
Collection features & cleanup Similar to the meme page, when you view the page of a collection you created, there is an options icon that when clicked, opens a menu where you can edit or delete the collection If you press on edit, an edit modal pops up where you can edit the name and select which memes should be in the collection If you press on delete, a warning modal shows up, and if you press delete the collection will be permanently deleted Added a search bar on the main collections page where you can search for your own or other people’s collections Added the collections tab to the main nav bar and the footer to improve navigation You can now add a short public about me bio on your profile by clicking on the edit profile button that shows an input edit modal When you hover over your own messages, a delete button now shows up that lets you delete the message for both of you after a confirmation modal just like all the other delete functionalities You can undo the deletion by pressing on the undo button that shows up, which restores the message for both of you I spent most of my time on MemeBoard developing while logged in, so I wasn’t aware most of my pages were completely broken and returning errors if someone visited them while not being logged in, so I implemented a ton of conditionals and permission stuff for auth to make sure every page works properly or redirects to the login page When you’re not logged in, you can still use the app and browse memes, it’s just that a lot of features are unavailable Updated backend schema and types Updated styling Fixed a few bugs and issues caused by auth
Random quality of life features I think I’m almost finished with MemeBoard, so now I’m just making random small features that I skipped over earlier Added realtime chat message previews for each of your chats that shows the last message and who sent it on the left sidebar so it feels more like Discord and Slack Added a tag filtering dropdown on the Memes page where you can see all the tags, search for them, and choose one to see all the memes labeled with that tag. This makes it a lot easier to browse, filter, and find similar memes Added an options menu button to the tag page (that only shows if you’re the one who made the tag) similar to the button I added to a bunch of other pages. When clicked, it shows a menu with just a delete option that deletes the tag and removes its label from all the memes after a confirmation modal Added both dynamically generated SEO and static SEO to some pages that didn’t have it Updated styling and navigation
MemeBot & bug fixes Added MemeBot to everyone’s chat, so even if you haven’t friended someone on the platform you can still try out all the chat features since MemeBot also sends messages in realtime MemeBot isn’t actually another AI chatbot or anything, it just responds with a random hardcoded string message (very intelligent, i know) from the backend whenever a user sends it a message after a certain delay to simulate realtime chatting Since MemeBot isn’t actually a user, I had to modify the chatting system quite a bit and put a lot of extra conditionals and logic to ensure it works properly for both MemeBot and real users, and that was quite annoying to figure out Fixed an annoying caching bug where you had to refresh the entire chat page for realtime interactions to work properly when chatting with someone for the first time, otherwise the chat just froze. This took a long time to fix, but the UX is finally smooth and works well Fixed some issues of the chat related to auth and not being logged in Updated styling
More collections features You can now search, sort, and filter collections on the collections page to browse and explore public collections other people created! You can filter your friends’ and your own collections to make managing them easier You can now add an optional description describing what your collection is about, either on the add or edit collection modal You can now change the visibility of your collection to be either public or private, where public collections are displayed on your profile and the collections page for everyone to see, and only you can see your own private collections Added a new private collections section on your profile that only you can see it Added a create collection modal that shows up when you click on the button on the collections page to make creating collections easier Added a create tag modal that shows up when you click on the button on the tags page, but unlike collections you can only put the name of the tag since that’s the only thing a tag has Updated schema and types Updated styling and SEO
MemeBoard is back!!! I’ve been a lazy bum this entire summer and didn’t finish a single one of my more serious projects on Stardance before losing interest and moving on to a new idea, but now that the event is ending in a month (nooo ) I finally forced myself to come back and finish up/ship my old projects one by one School just started so I’ll hopefully still have enough time to ship most of my projects before October. Since no one has used MemeBoard at all in over 2 months, I had to upgrade some packages, resetup some deployment stuff, and reactivate the databases for everything to function normally I also spent some time getting familiar with the codebase again, so I didn’t make a lot of changes this update. I added a few quality of life features like sharing/reporting comments, homepage meme and chat sections, and user search for finding people to follow When you click on share for a comment, the share modal pops up listing all your friends that you can select to send the comment and a message to, as well as options to copy the link and to report it Comments show up as embedded text with the user and like count displayed, and clicking on it takes you to its location on the original meme page for easy viewing (definitely not stolen from TikTok ) When you click on add user on the chat page, it shows a modal where you can use the API to search for people to add as friends, making chatting and sharing memes more convenient Added recent, top, all time, friend memes, and recent chat sections to the homepage to make navigating the platform and browsing memes easier Added call to action buttons on the homepage hero to make using the site more intuitive Updated content and styling Updated MemeBot behavior Updated README Fixed chat deployment issue Did some miscellaneous stuff/improvements/fixes that I forgot
Light mode toggle Added a button on the nav bar that toggles the site’s entire appearance between dark and light mode to improve its customizability and accessibility Because every component has a default color transition, switching between the 2 modes has a smooth UI transition instead of flashing to the other color instantly I had to set up the theme provider and manually add the light mode Tailwind classes and the dark mode prefix for all the colors in every page and component, so this took quite a long time but the result was worth it, both modes look pretty consistent and visually appealing
Meme reactions, animations, and polishing Added reactions to memes (kind of similar to Reddit awards) so you can now choose an emoji to express what you think about the meme! There is a new React button on the meme bar that opens an emoji selection menu that lets you choose your reaction. You can see all the meme’s reactions sorted by number of users listed below the bar and can click on them to switch your reaction or unreact (since you can only react once) Reactions are anonymous, so you can only see the number of reactions with your own reaction highlighted Added subtle page transition animations to the layout and individual components to make navigation and user interactions a lot smoother and more aesthetically pleasing Added a 404 not found page with an occasional stylized glitching effect and buttons to go home or go back Added more detailed and dynamically generated OpenGraph metadata to improve SEO Updated backend Prisma schema and migrated database Updated types and styling Fixed a few display, light mode, and responsive design bugs MemeBoard is almost finished, it’ll probably be ready to ship after one final devlog and some polishing touches!!!
Final MemeBoard devlog! I finally finished MemeBoard after working on it over the past 3 months! I’ve implemented all the features I originally planned to make, as well as added a ton of other stuff to make the project interesting and fun to use I mostly just polished the project in this update, so there isn’t actually anything new other than the simple “m” logo/favicon I added to the nav bar and footer Added a top loading bar indicator to show the page is responsive and is actively loading since some pages take a bit of time to fetch data, and I’m too lazy to implement suspense/loading skeleton and all that Clicking on things that require the user to be signed in now redirects you to the sign in page so it’s more user friendly and not confusing Updated the README to document detailed information, all the features, setup instructions, and everything else about the project Fixed an annoying issue where MemeBot didn’t respond at all or took a long time by simply deleting an intentional timeout and the bug was somehow fixed Updated styling and layout components
Ships:
I finally finished making MemeBoard after periodically working on it over the past 3 months! MemeBoard is an accessible and easy to use fullstack online social platform for posting, sharing, and exploring all kinds of memes. There are many different post interaction features such as voting, commenting, saving, reacting, and sharing, it’s essentially a simple Reddit clone that’s exclusively for memes. You can browse, filter, and search through memes easily by choosing different sorting options and exploring the different tags and collections. It also has social features like following users and customizing your profile, as well as a full-featured realtime chat (mini Discord clone) where you can send content and chat with your friends or interact with MemeBot (which is not an LLM, it’s just a random thing I thought was fun to implement)! The entire website is also fully responsive and functional on all screen sizes with smooth loading and transition animations, and you can toggle between dark and light modes. I got bored of the project halfway through it to work on other stuff, but I ended up coming back more than a month later to finally finish everything and polish it to ship, and the final result is definitely very satisfying and rewarding for me, hopefully you’ll like it :)...
|
1793336066.7195427
|
1793422466.7195427
|
|
613
|
Chat by @tonymac129 | Stardance
|
tonymac129
|
0
|
1.0
|
0
|
[]
|
[{"post_id": 128, "ts": "2026- [{"post_id": 128, "ts": "2026-05-31T21:20:00Z", "hours": 1.0, "text": "Made the basic real time chat app"}]...
|
Title: Chat by @tonymac129 | Stardance
Devlogs:
M Title: Chat by @tonymac129 | Stardance
Devlogs:
Made the basic real time chat app...
|
1792914512.1897888
|
1793778512.1897888
|
|
21839
|
Slowfetch by @tonymac129 | Stardance
|
tonymac129
|
1
|
10.0
|
107
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-23T20:46:29Z", "hours": 10.0, "multiplier": 10.66, "payout": 107, "blessing": "neutral", "text": "I made Slowfetch, a simple, lightweight, and fast (slow) Fastfetch/Neofetch alternative for Linux operating systems that fetches and displays a list of organized useful system and hardware information and runtime metrics, as well as an ASCII logo of the distro. This is my first Rust project, and I didn’t have any ideas for what to build since I barely knew anything, but through this project, I gained a ton of experience working with Rust basics, interacting with the Linux file system, using Cargo and Rust libraries, and deploying the program as a working executable release on GitHub. I’m really proud of how everything turned out, especially the ASCII logos and the colors, that the program looks very polished and functional. Building this project also taught me a lot about how the kernel and command line programs actually function under the hood.", "repo": "https://github.com/tonymac129/slowfetch", "demo": "https://github.com/tonymac129/slowfetch/releases"}]...
|
[{"post_id": 14646, "ts": "202 [{"post_id": 14646, "ts": "2026-06-23T20:37:00Z", "hours": 0.7233, "text": "Polishing & final touches! Slowfetch is now finally finished; the logos are colored and print out properly and all the statistics are organized and displayed accurately! Thanks to @crushedflea ’s contribution, the ASCII logo constants are now merged with the main file and a few other display bugs are fixed Adding a “–censor” or the shorthand “-c” flag now censors the public IP Added a GitHub release so you can actually download and use Slowfetch as an executable program! Updated the README so it’s more informative and contains instructions for setting up the development environment for Slowfetch or downloading the GitHub release"}, {"post_id": 13332, "ts": "2026-06-21T20:52:13Z", "hours": 2.3514, "text": "More stats & new logos! Added a disk storage usage list item that has a similar format as the memory display (used, total, and percentage) and correctly converts to the most appropriate unit. This was a lot harder to set up than fetching the memory since I had to use an external library and do some extra stuff Added private and public IPs, current locale, and current battery percentage Added new correctly colored and sized ASCII style logos for Ubuntu and Fedora. I just started VMs for these, copied Fastfetch’s output logos, colored them and slightly modified them to better fit Slowfetch Added the color blocks from Fastfetch that render 10 different colors at the bottom of the list so you can see the colors your monitor displays Slowfetch now automatically detects the current distro and renders the correct ASCII logo, and if it isn’t Debian, Arch, Fedora, or Ubuntu the default Linux logo is the fallback (since Slowfetch only supports Linux) Cleaned up the colors and reorganized the list items into sections for better organization and readability"}, {"post_id": 12319, "ts": "2026-06-20T03:14:54Z", "hours": 1.8122, "text": "ASCII logos!!! Added the iconic ASCII distro logos from fastfetch/neofetch so you can better flex your operating system and nerdiness! Currently only Arch, Debian, and Linux ASCII logos are added with the symbols mostly correctly color coded I had to edit the logos quite a bit instead of just copying them from fastfetch’s output since they need to fit in my number of lines and keep the correct formatting Slowfetch can’t detect the distro and render the correct logo yet, so right now you can only pass it as a flag (with either arch, debian, or linux) to see the output, otherwise it doesn’t show a logo Added some placeholder list items (ip, locale, display), will be implemented soon I decided to only make Slowfetch support the major 4 distros I mentioned above since it’s too much of a pain (is it even possible?) to access Windows and macOS’ info"}, {"post_id": 12072, "ts": "2026-06-19T18:14:33Z", "hours": 1.8786, "text": "Hardware stats and shell Slowfetch now displays the current memory usage out of the device’s total RAM and shows the usage percentage. It also converts the unit automatically; GB is the default and only uses MB/KB if current usage is less than 500 MB/KB It also reads the CPU’s info, model, and specifications from the /proc directory and displays the information alongside memory Current shell and the number of packages installed on the OS are also displayed using some string manipulation Getting the GPU info is a bit trickier since it has to run the lspci command, capture its output, and filter through it to get the exact name of the chip Added a README to better document the script’s features Improved some formatting and display issues"}, {"post_id": 11589, "ts": "2026-06-18T21:33:41Z", "hours": 3.3083, "text": "First devlog on Slowfetch! I’m starting a new project, Slowfetch, which is basically a simple CLI fastfetch/neofetch copy that reads system files and runtime metrics and outputs them in an organized and visually appealing list This is my first Rust project too, so I spent a good chunk of this time learning and getting familiar with its basic concepts, Cargo, the documentation, and how it actually works I’m currently only running it in a Debian VM for testing (it will be available for other distros and Windows/macOS in the future), so I also spent some time setting up VS Code’s remote ssh and installing packages in the VM Right now it only reads username, hostname, and OS info from the /etc directory and runtime metrics from /proc and outputs a simple list that’s somewhat color coded Rust is actually not as hard as I thought it would be once I got kinda used to it, so I’m pretty excited to implement a ton of other features for this project!"}]...
|
Title: Slowfetch by @tonymac129 | Stardance
Devlo Title: Slowfetch by @tonymac129 | Stardance
Devlogs:
First devlog on Slowfetch! I’m starting a new project, Slowfetch, which is basically a simple CLI fastfetch/neofetch copy that reads system files and runtime metrics and outputs them in an organized and visually appealing list This is my first Rust project too, so I spent a good chunk of this time learning and getting familiar with its basic concepts, Cargo, the documentation, and how it actually works I’m currently only running it in a Debian VM for testing (it will be available for other distros and Windows/macOS in the future), so I also spent some time setting up VS Code’s remote ssh and installing packages in the VM Right now it only reads username, hostname, and OS info from the /etc directory and runtime metrics from /proc and outputs a simple list that’s somewhat color coded Rust is actually not as hard as I thought it would be once I got kinda used to it, so I’m pretty excited to implement a ton of other features for this project!
Hardware stats and shell Slowfetch now displays the current memory usage out of the device’s total RAM and shows the usage percentage. It also converts the unit automatically; GB is the default and only uses MB/KB if current usage is less than 500 MB/KB It also reads the CPU’s info, model, and specifications from the /proc directory and displays the information alongside memory Current shell and the number of packages installed on the OS are also displayed using some string manipulation Getting the GPU info is a bit trickier since it has to run the lspci command, capture its output, and filter through it to get the exact name of the chip Added a README to better document the script’s features Improved some formatting and display issues
ASCII logos!!! Added the iconic ASCII distro logos from fastfetch/neofetch so you can better flex your operating system and nerdiness! Currently only Arch, Debian, and Linux ASCII logos are added with the symbols mostly correctly color coded I had to edit the logos quite a bit instead of just copying them from fastfetch’s output since they need to fit in my number of lines and keep the correct formatting Slowfetch can’t detect the distro and render the correct logo yet, so right now you can only pass it as a flag (with either arch, debian, or linux) to see the output, otherwise it doesn’t show a logo Added some placeholder list items (ip, locale, display), will be implemented soon I decided to only make Slowfetch support the major 4 distros I mentioned above since it’s too much of a pain (is it even possible?) to access Windows and macOS’ info
More stats & new logos! Added a disk storage usage list item that has a similar format as the memory display (used, total, and percentage) and correctly converts to the most appropriate unit. This was a lot harder to set up than fetching the memory since I had to use an external library and do some extra stuff Added private and public IPs, current locale, and current battery percentage Added new correctly colored and sized ASCII style logos for Ubuntu and Fedora. I just started VMs for these, copied Fastfetch’s output logos, colored them and slightly modified them to better fit Slowfetch Added the color blocks from Fastfetch that render 10 different colors at the bottom of the list so you can see the colors your monitor displays Slowfetch now automatically detects the current distro and renders the correct ASCII logo, and if it isn’t Debian, Arch, Fedora, or Ubuntu the default Linux logo is the fallback (since Slowfetch only supports Linux) Cleaned up the colors and reorganized the list items into sections for better organization and readability
Polishing & final touches! Slowfetch is now finally finished; the logos are colored and print out properly and all the statistics are organized and displayed accurately! Thanks to @crushedflea ’s contribution, the ASCII logo constants are now merged with the main file and a few other display bugs are fixed Adding a “–censor” or the shorthand “-c” flag now censors the public IP Added a GitHub release so you can actually download and use Slowfetch as an executable program! Updated the README so it’s more informative and contains instructions for setting up the development environment for Slowfetch or downloading the GitHub release
Ships:
I made Slowfetch, a simple, lightweight, and fast (slow) Fastfetch/Neofetch alternative for Linux operating systems that fetches and displays a list of organized useful system and hardware information and runtime metrics, as well as an ASCII logo of the distro. This is my first Rust project, and I didn’t have any ideas for what to build since I barely knew anything, but through this project, I gained a ton of experience working with Rust basics, interacting with the Linux file system, using Cargo and Rust libraries, and deploying the program as a working executable release on GitHub. I’m really proud of how everything turned out, especially the ASCII logos and the colors, that the program looks very polished and functional. Building this project also taught me a lot about how the kernel and command line programs actually function under the hood....
|
1793534116.91593
|
1793620516.91593
|
|
29100
|
Social.js by @tonymac129 | Stardance
|
tonymac129
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Social.js by @tonymac129 | Stardance
|
1792950883.8100514
|
1793814883.8100514
|
|
29145
|
Codeliver by @tonymac129 | Stardance
|
tonymac129
|
0
|
33.29
|
0
|
[]
|
[{"post_id": 84107, "ts": "202 [{"post_id": 84107, "ts": "2026-10-29T03:59:04Z", "hours": 3.7086, "text": "Direct messages! Another massive devlog with a ton of updates and changes! I really need to lock in on this project if I want to be able to finish it and ship before Stardance ends You can now create DMs on Codeliver to directly message other users! I added a browse user modal where you can search for a user by their name and email, and clicking on the message option creates a new DM A DM is basically identical to a channel, (so it was surprisingly easy to implement) except it’s private to only the two of you and no one else can join or see your messages You can view DMs on the left chat sidebar below your channels, as well as on the new DM homepage that lists all your recent DMs and message previews, as well as a search bar and a add DM button to make browsing and managing your DMs easier You can also leave and rejoin DMs whenever, similar to channels, and DMs show up a little differently since they’re named after the other user and don’t need as much customization/settings as normal channels Since I added a DM homepage listing all the DMs, I also created a channel homepage that displays all the channels you’ve joined, as well as a search bar and a join channel button to make viewing all your different messages a lot more convenient Updated some content and layout styling on the landing homepage preview Updated types, schema, and styling Removed some originally planned pages like notifications and settings because I procrastinated so much and can’t implement them in 3 days"}, {"post_id": 82514, "ts": "2026-10-25T03:02:46Z", "hours": 4.5256, "text": "Codeliver is back!!! Stardance is ending in 7 days , and I’ve been coming back to finish some of my abandoned temporarily paused projects from a few months ago, and now it’s time for me to finally complete and ship my final project on Stardance: Codeliver!!! I already logged a few hours before moving on from Codeliver to another project and abandoning it for like 3 months, but I can’t remember exactly what I did so this devlog will only cover the 2 hours I logged recently In this update, I dockerized the entire application into a docker compose of 2 containers, express.js backend and Next.js frontend, and configured the environment variables, ports, and build and setup instructions to make the fullstack app a lot easier to deploy or self host in case anyone wants to run their own instance of Codeliver Added complete support for light mode for the entire platform, which is basically my method of refamiliarizing myself with an abandoned code base after a long time since this basically means going through the entire app again to modify every file and component’s styling/Tailwind classes Added message replies, where you can hover over a message and click on the reply button, and if a message is replying to another message it’ll show a thread linking back and highlighting the original message when clicked (similar to Discord’s reply) Fixed some display issues and permission bugs Hopefully I can quickly finish Codeliver (there are still a TON of stuff to be done before it’s functional and shippable ) and ship it in time, or maybe even have time to ship another project(?), especially since I’m also doing right now and am super busy with school…"}, {"post_id": 30408, "ts": "2026-07-17T22:20:58Z", "hours": 2.6406, "text": "More channel & user management features I’ve been pretty busy this past week and haven’t been able to spend a lot of time on Codeliver or Stardance in general until now. Hopefully I’ll have more time the rest of the summer do get more hours and actually finish my projects In this update, I added channel settings, some channel ownership and user management features for each channel, as well as the ability to delete channels When you click on the new channel settings icon in a channel (that only shows if you’re the owner), a settings modal pops up, currently only with 2 options, transfer ownership and delete channel When you click on transfer ownership, another modal pops up where you can search for a user already added to the channel, select them, and transfer channel ownership after confirmation If you try to leave a channel when you’re its owner, Codeliver prompts you to transfer the ownership to someone else first to avoid orphaned relations in the database When you press on delete channel, a confirmation modal pops up and the channel and all its data will be deleted after confirmation When you click on browse users, your permissions are also displayed and you are able to see who the owner is Updated styling and navigation Updated API endpoints Updated README"}, {"post_id": 26375, "ts": "2026-07-11T03:56:50Z", "hours": 5.0928, "text": "Channel and user management I forgot to make a devlog for 2 days straight and I got a ton of stuff accomplished, so this devlog is gonna be a pretty long one with a ton of changes that make Codeliver one step closer to being a significantly inferior Slack clone! You can now add users to a channel (doesn’t matter if you’re an owner or a member), but only the owner can remove people. There are probably still some permission edge cases I need to test and fix, but for now it works pretty well When you click on the add member icon, a modal pops up where you can search for all Codeliver users, grouped into added users and people not in the channel, so you can search for them and manage them easily Added an API endpoint for the user lookup with channel integration to improve frontend data fetching and backend performance When you click on the edit channel icon a modal pops up, where you can edit its name (must be unique), description, and visibility (more channel settings coming soon) When you click on the leave channel button, a warning modal pops up for you to confirm the change When you click on browse channels from the channel management menu, a modal pops up (this entire update is about modals) where you can search for all the channels on Codeliver to view, join, or leave Added an API endpoint for channel lookup, with respect to user and channel permissions, to make the searching process easier When you visit a public channel that you haven’t joined, it shows a join message section instead of the message field similar to slack When you visit a private or nonexistent channel, it just redirects you to the chat homepage Your sidebar now actually shows the channels you’ve joined, and shows the browse channels button if you don’t have any Every backend or data state change is revalidated and updated in realtime to ensure smooth and responsive UX Updated database/backend schema and types Updated styling and navigation Fixed deployment issues (the demo site still doesn’t work yet because the Express backend is a mess and hasn’t been set up)"}, {"post_id": 25680, "ts": "2026-07-10T03:07:25Z", "hours": 1.4703, "text": "Optimized chatting rooms Optimized the Socket.io broadcast events and listeners a lot by using the library’s rooms feature so users viewing different channels will listen to different events Every time you click and view a new channel, you automatically “leave” the original channel room so you no longer receive messages from it (because you’re not viewing the channel despite still being in the channel). You also “join” the new channel and receive its messages because you’re viewing it This took a frustratingly long time to implement and debug because I have to track the currently viewed channel on the frontend and communicate with the backend reliably Added backend revalidation to make the UX of creating new channels smoother The channel you’re currently viewing is now highlighted on the left sidebar of the chat layout Updated types Updated navigation Updated styling Because this is mostly a refactor with minimal feature changes, I’ll just put a screenshot of chatting in a channel"}, {"post_id": 25119, "ts": "2026-07-09T03:48:37Z", "hours": 1.9919, "text": "Create your own channels This took a surprisingly long time to implement (Tailwind and Framer Motion are really annoying), but I finally made a channel creation feature where you can create your own chat channels on Codeliver When you hover over the Channels category on the left chat sidebar, you’ll see a menu button option that appears, and when you click on it, it opens a channel management menu You can choose to either create a channel, browse/search for available channels to join (not implemented yet), or click away to close the menu If you choose create a channel, a modal will pop up where you can put its name (must be unique and made of lowercase characters and dashes), description, and set its visibility with the cool toggle If you create the new channel successfully, you’ll be automatically redirected to it where you can start chatting in it! The browse channels options currently just shows an empty modal with a search bar that doesn’t do anything yet Updated schema and types for channels and messages Updated styling and navigation"}, {"post_id": 24516, "ts": "2026-07-08T03:39:17Z", "hours": 2.9478, "text": "Realtime Socket.io + Express backend Finally added a backend to Codeliver! I’m using the WebSocket node library Socket.io to handle realtime events and messaging, so I had to set up an Express server to handle the different requests and events The backend also has to access the auth user data and the shared Prisma Postgres database, so it took me a while to make both the Next.js frontend and Express backend to be able to read and write to it properly (since they are technically their own repos) Also implemented Socket.io client to the Next.js frontend so whenever you send a message it either creates a new Chat object and sends the message or finds an existing one and adds a new message Added Prisma schema and frontend types for chats, messages, and reactions Added persistent message storing for each chat channel and removed the placeholder messages Figured out how to send a Better Auth JWT token from the frontend and verify the session on the backend to authorize messaging features I had to deal with a lot of annoying CORS, environment variable, and auth stuff, so that was not fun but the result was worth it"}, {"post_id": 23541, "ts": "2026-07-06T15:51:38Z", "hours": 2.3739, "text": "Frontend messaging UI Added the chat messages frontend UI that looks like a combination of Slack and Discord with buttons and components for features like replying, reacting, and other chat stuff. Because the realtime Socket.io backend isn’t implemented yet, these are just placeholder elements for now and are not functional For each message, you can see the sender’s profile picture, name, localized and human readable timestamp, message, reactions and their counts, and a bar displaying message options that shows up when you hover over the message Added date separators/horizontal rules to separate chat messages from different dates, improving readability and ease of use Added temporary placeholder data to simulate chat messages When you press on reply, a bar now appears above the message input field that shows you’re replying to someone’s message with its preview. You can also cancel the reply by closing the bar Updated UI behavior of the emoji selection menu to ensure it works for all screen sizes Updated styling and UI Updated schema and types Fixed deployment issues with npm"}, {"post_id": 21921, "ts": "2026-07-04T03:22:57Z", "hours": 1.6478, "text": "Custom status, new tabs, and SEO Added an emoji picker (using the library Emoji Mart) next to the custom status input field on the edit profile page where you can choose an emoji for your status as well as a status text (both are optional) Below the emoji picker and status input field, there are a few preset combinations of emojis and statuses for common situations, making setting a custom status a lot easier. There is also an option to clear your status Added a few new tabs in the user route group that are all just empty placeholders for now Added actual SEO and Open Graph metadata information for all pages on Codeliver Added a placeholder favicon for the site Added input validation for profile customization Updated navigation and auth flow Updated schema and types Updated style Fixed a dependency deployment issue with npm"}, {"post_id": 21597, "ts": "2026-07-03T17:08:25Z", "hours": 3.3653, "text": "Chat layout & profile Made a placeholder layout for chat pages (for both channels and direct messages) with a left sidebar listing all the channels you’re in and all your direct messages (all the items are just placeholders for now), similar to Slack and Discord’s layouts Added a message textarea/input field on the main chat area with options for formatting the text, inserting code and emoji, and uploading files. A “send” button also shows up when you type a message. None of these buttons work yet, I only made the layout Added a profile customization page where you can customize your profile information (everything except for changing your profile picture works) that shares a layout with the other tabs When you’re logged in and click on your user icon on the nav bar, an animated menu shows up where you can go to profile, settings, switch light/dark mode, or sign out, but only profile and sign out work Added actual auth flow for both email/password and OAuth providers so you get signed in and redirected to chat automatically Set up Google and GitHub’s OAuth tokens and stuff Added backend server actions for auth and customization Updated schema and types Updated styling"}, {"post_id": 20994, "ts": "2026-07-02T18:52:59Z", "hours": 2.2197, "text": "Landing page & auth Added a landing page for non logged in users to learn more about the app The hero section has a title, description, and two call to action buttons for logging in and reading more information There are also a few sections on the landing page that just display placeholder images and text for now since the app doesn’t actually exist yet Added an animated faq component at the bottom that’s a collapsible accordion Added a login page with a form where you can either sign up, sign in with email/password, or sign in with OAuth providers (Google and GitHub coming soon) Added a navigation bar on the landing page"}, {"post_id": 19705, "ts": "2026-07-01T03:10:21Z", "hours": 1.3089, "text": "Codeliver: realtime code sharing chat app While working on my previous project MemeBoard , I got a bit too addicted with the realtime chat part of the app and overengineered it way too much, so I decided to build an app focused on chatting and sharing code with other people This is also an excellent opportunity for me to learn more about WebSockets, Socket.io, Node, and Linux server configuration/management since I’m planning to host this app on a dedicated DigitalOcean VM instead of the serverless Vercel In this update, I set up the basic project structure with an empty backend directory and a frontend directory for the Next.js frontend, installed the necessary dependencies, and set up the Prisma database for auth"}]...
|
Title: Codeliver by @tonymac129 | Stardance
Devlo Title: Codeliver by @tonymac129 | Stardance
Devlogs:
Codeliver: realtime code sharing chat app While working on my previous project MemeBoard , I got a bit too addicted with the realtime chat part of the app and overengineered it way too much, so I decided to build an app focused on chatting and sharing code with other people This is also an excellent opportunity for me to learn more about WebSockets, Socket.io, Node, and Linux server configuration/management since I’m planning to host this app on a dedicated DigitalOcean VM instead of the serverless Vercel In this update, I set up the basic project structure with an empty backend directory and a frontend directory for the Next.js frontend, installed the necessary dependencies, and set up the Prisma database for auth
Landing page & auth Added a landing page for non logged in users to learn more about the app The hero section has a title, description, and two call to action buttons for logging in and reading more information There are also a few sections on the landing page that just display placeholder images and text for now since the app doesn’t actually exist yet Added an animated faq component at the bottom that’s a collapsible accordion Added a login page with a form where you can either sign up, sign in with email/password, or sign in with OAuth providers (Google and GitHub coming soon) Added a navigation bar on the landing page
Chat layout & profile Made a placeholder layout for chat pages (for both channels and direct messages) with a left sidebar listing all the channels you’re in and all your direct messages (all the items are just placeholders for now), similar to Slack and Discord’s layouts Added a message textarea/input field on the main chat area with options for formatting the text, inserting code and emoji, and uploading files. A “send” button also shows up when you type a message. None of these buttons work yet, I only made the layout Added a profile customization page where you can customize your profile information (everything except for changing your profile picture works) that shares a layout with the other tabs When you’re logged in and click on your user icon on the nav bar, an animated menu shows up where you can go to profile, settings, switch light/dark mode, or sign out, but only profile and sign out work Added actual auth flow for both email/password and OAuth providers so you get signed in and redirected to chat automatically Set up Google and GitHub’s OAuth tokens and stuff Added backend server actions for auth and customization Updated schema and types Updated styling
Custom status, new tabs, and SEO Added an emoji picker (using the library Emoji Mart) next to the custom status input field on the edit profile page where you can choose an emoji for your status as well as a status text (both are optional) Below the emoji picker and status input field, there are a few preset combinations of emojis and statuses for common situations, making setting a custom status a lot easier. There is also an option to clear your status Added a few new tabs in the user route group that are all just empty placeholders for now Added actual SEO and Open Graph metadata information for all pages on Codeliver Added a placeholder favicon for the site Added input validation for profile customization Updated navigation and auth flow Updated schema and types Updated style Fixed a dependency deployment issue with npm
Frontend messaging UI Added the chat messages frontend UI that looks like a combination of Slack and Discord with buttons and components for features like replying, reacting, and other chat stuff. Because the realtime Socket.io backend isn’t implemented yet, these are just placeholder elements for now and are not functional For each message, you can see the sender’s profile picture, name, localized and human readable timestamp, message, reactions and their counts, and a bar displaying message options that shows up when you hover over the message Added date separators/horizontal rules to separate chat messages from different dates, improving readability and ease of use Added temporary placeholder data to simulate chat messages When you press on reply, a bar now appears above the message input field that shows you’re replying to someone’s message with its preview. You can also cancel the reply by closing the bar Updated UI behavior of the emoji selection menu to ensure it works for all screen sizes Updated styling and UI Updated schema and types Fixed deployment issues with npm
Realtime Socket.io + Express backend Finally added a backend to Codeliver! I’m using the WebSocket node library Socket.io to handle realtime events and messaging, so I had to set up an Express server to handle the different requests and events The backend also has to access the auth user data and the shared Prisma Postgres database, so it took me a while to make both the Next.js frontend and Express backend to be able to read and write to it properly (since they are technically their own repos) Also implemented Socket.io client to the Next.js frontend so whenever you send a message it either creates a new Chat object and sends the message or finds an existing one and adds a new message Added Prisma schema and frontend types for chats, messages, and reactions Added persistent message storing for each chat channel and removed the placeholder messages Figured out how to send a Better Auth JWT token from the frontend and verify the session on the backend to authorize messaging features I had to deal with a lot of annoying CORS, environment variable, and auth stuff, so that was not fun but the result was worth it
Create your own channels This took a surprisingly long time to implement (Tailwind and Framer Motion are really annoying), but I finally made a channel creation feature where you can create your own chat channels on Codeliver When you hover over the Channels category on the left chat sidebar, you’ll see a menu button option that appears, and when you click on it, it opens a channel management menu You can choose to either create a channel, browse/search for available channels to join (not implemented yet), or click away to close the menu If you choose create a channel, a modal will pop up where you can put its name (must be unique and made of lowercase characters and dashes), description, and set its visibility with the cool toggle If you create the new channel successfully, you’ll be automatically redirected to it where you can start chatting in it! The browse channels options currently just shows an empty modal with a search bar that doesn’t do anything yet Updated schema and types for channels and messages Updated styling and navigation
Optimized chatting rooms Optimized the Socket.io broadcast events and listeners a lot by using the library’s rooms feature so users viewing different channels will listen to different events Every time you click and view a new channel, you automatically “leave” the original channel room so you no longer receive messages from it (because you’re not viewing the channel despite still being in the channel). You also “join” the new channel and receive its messages because you’re viewing it This took a frustratingly long time to implement and debug because I have to track the currently viewed channel on the frontend and communicate with the backend reliably Added backend revalidation to make the UX of creating new channels smoother The channel you’re currently viewing is now highlighted on the left sidebar of the chat layout Updated types Updated navigation Updated styling Because this is mostly a refactor with minimal feature changes, I’ll just put a screenshot of chatting in a channel
Channel and user management I forgot to make a devlog for 2 days straight and I got a ton of stuff accomplished, so this devlog is gonna be a pretty long one with a ton of changes that make Codeliver one step closer to being a significantly inferior Slack clone! You can now add users to a channel (doesn’t matter if you’re an owner or a member), but only the owner can remove people. There are probably still some permission edge cases I need to test and fix, but for now it works pretty well When you click on the add member icon, a modal pops up where you can search for all Codeliver users, grouped into added users and people not in the channel, so you can search for them and manage them easily Added an API endpoint for the user lookup with channel integration to improve frontend data fetching and backend performance When you click on the edit channel icon a modal pops up, where you can edit its name (must be unique), description, and visibility (more channel settings coming soon) When you click on the leave channel button, a warning modal pops up for you to confirm the change When you click on browse channels from the channel management menu, a modal pops up (this entire update is about modals) where you can search for all the channels on Codeliver to view, join, or leave Added an API endpoint for channel lookup, with respect to user and channel permissions, to make the searching process easier When you visit a public channel that you haven’t joined, it shows a join message section instead of the message field similar to slack When you visit a private or nonexistent channel, it just redirects you to the chat homepage Your sidebar now actually shows the channels you’ve joined, and shows the browse channels button if you don’t have any Every backend or data state change is revalidated and updated in realtime to ensure smooth and responsive UX Updated database/backend schema and types Updated styling and navigation Fixed deployment issues (the demo site still doesn’t work yet because the Express backend is a mess and hasn’t been set up)
More channel & user management features I’ve been pretty busy this past week and haven’t been able to spend a lot of time on Codeliver or Stardance in general until now. Hopefully I’ll have more time the rest of the summer do get more hours and actually finish my projects In this update, I added channel settings, some channel ownership and user management features for each channel, as well as the ability to delete channels When you click on the new channel settings icon in a channel (that only shows if you’re the owner), a settings modal pops up, currently only with 2 options, transfer ownership and delete channel When you click on transfer ownership, another modal pops up where you can search for a user already added to the channel, select them, and transfer channel ownership after confirmation If you try to leave a channel when you’re its owner, Codeliver prompts you to transfer the ownership to someone else first to avoid orphaned relations in the database When you press on delete channel, a confirmation modal pops up and the channel and all its data will be deleted after confirmation When you click on browse users, your permissions are also displayed and you are able to see who the owner is Updated styling and navigation Updated API endpoints Updated README
Codeliver is back!!! Stardance is ending in 7 days , and I’ve been coming back to finish some of my abandoned temporarily paused projects from a few months ago, and now it’s time for me to finally complete and ship my final project on Stardance: Codeliver!!! I already logged a few hours before moving on from Codeliver to another project and abandoning it for like 3 months, but I can’t remember exactly what I did so this devlog will only cover the 2 hours I logged recently In this update, I dockerized the entire application into a docker compose of 2 containers, express.js backend and Next.js frontend, and configured the environment variables, ports, and build and setup instructions to make the fullstack app a lot easier to deploy or self host in case anyone wants to run their own instance of Codeliver Added complete support for light mode for the entire platform, which is basically my method of refamiliarizing myself with an abandoned code base after a long time since this basically means going through the entire app again to modify every file and component’s styling/Tailwind classes Added message replies, where you can hover over a message and click on the reply button, and if a message is replying to another message it’ll show a thread linking back and highlighting the original message when clicked (similar to Discord’s reply) Fixed some display issues and permission bugs Hopefully I can quickly finish Codeliver (there are still a TON of stuff to be done before it’s functional and shippable ) and ship it in time, or maybe even have time to ship another project(?), especially since I’m also doing right now and am super busy with school…
Direct messages! Another massive devlog with a ton of updates and changes! I really need to lock in on this project if I want to be able to finish it and ship before Stardance ends You can now create DMs on Codeliver to directly message other users! I added a browse user modal where you can search for a user by their name and email, and clicking on the message option creates a new DM A DM is basically identical to a channel, (so it was surprisingly easy to implement) except it’s private to only the two of you and no one else can join or see your messages You can view DMs on the left chat sidebar below your channels, as well as on the new DM homepage that lists all your recent DMs and message previews, as well as a search bar and a add DM button to make browsing and managing your DMs easier You can also leave and rejoin DMs whenever, similar to channels, and DMs show up a little differently since they’re named after the other user and don’t need as much customization/settings as normal channels Since I added a DM homepage listing all the DMs, I also created a channel homepage that displays all the channels you’ve joined, as well as a search bar and a join channel button to make viewing all your different messages a lot more convenient Updated some content and layout styling on the landing homepage preview Updated types, schema, and styling Removed some originally planned pages like notifications and settings because I procrastinated so much and can’t implement them in 3 days...
|
1793278379.9333014
|
1793883179.9333014
|
|
37449
|
MacWeb by @tonymac129 | Stardance
|
tonymac129
|
0
|
3.83
|
0
|
[]
|
[{"post_id": 31517, "ts": "202 [{"post_id": 31517, "ts": "2026-07-20T00:07:27Z", "hours": 3.8347, "text": "MacWeb is back from the dead MacWeb is my biggest project so far that I’ve worked on periodically in the past 2 years, and ever since I rewrote it from scratch for like the third time to migrate to Next.js and fullstack during Flavortown, I have not touched it at all I didn’t plan on starting it again any time soon, but I actually needed to make a form for a hackathon I’m hosting, and while I could’ve used Google Forms or something else, I decided making my own form creation tool was the best option I wanted the tool to be part of MacWeb, meaning it had to connect to the original auth and database system, but those were outdated and I wanted a more modern stack, so I decided to completely migrate this platform before even starting with the form tool The database was the easiest to migrate since I just had to set up Neon and Prisma, rewrite a few server actions and APIs, build a clean, new schema and type system, and run a few migrations Auth was the actual pain because not only did I have to replace all the original structure with the new framework and generate new OAuth clients, I also had to make cross origin subdomain cookie session sharing work because the other apps are on their own subdomains. This meant reading a ton of docs and changing the auth config way too many times Every time I had to change the config to see if the subdomain CORS/whatever error was fixed, I had to commit, push, and redeploy on the actual domain since cookies and auth behave differently in local dev environment I ended up repeating this frustrating cycle of endless commits to fix that one bug for like 2 hours before realizing I made a typo for an environment variable and then everything got fixed…"}]...
|
Title: MacWeb by @tonymac129 | Stardance
Devlogs: Title: MacWeb by @tonymac129 | Stardance
Devlogs:
MacWeb is back from the dead MacWeb is my biggest project so far that I’ve worked on periodically in the past 2 years, and ever since I rewrote it from scratch for like the third time to migrate to Next.js and fullstack during Flavortown, I have not touched it at all I didn’t plan on starting it again any time soon, but I actually needed to make a form for a hackathon I’m hosting, and while I could’ve used Google Forms or something else, I decided making my own form creation tool was the best option I wanted the tool to be part of MacWeb, meaning it had to connect to the original auth and database system, but those were outdated and I wanted a more modern stack, so I decided to completely migrate this platform before even starting with the form tool The database was the easiest to migrate since I just had to set up Neon and Prisma, rewrite a few server actions and APIs, build a clean, new schema and type system, and run a few migrations Auth was the actual pain because not only did I have to replace all the original structure with the new framework and generate new OAuth clients, I also had to make cross origin subdomain cookie session sharing work because the other apps are on their own subdomains. This meant reading a ton of docs and changing the auth config way too many times Every time I had to change the config to see if the subdomain CORS/whatever error was fixed, I had to commit, push, and redeploy on the actual domain since cookies and auth behave differently in local dev environment I ended up repeating this frustrating cycle of endless commits to fix that one bug for like 2 hours before realizing I made a typo for an environment variable and then everything got fixed…...
|
1793404111.4410238
|
1794008911.4410238
|
|
37455
|
MacForms by @tonymac129 | Stardance
|
tonymac129
|
1
|
38.0
|
583
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-21T03:17:27Z", "hours": 38.0, "multiplier": 15.38, "payout": 583, "blessing": "neutral", "text": "I finally finished MacForms, an extensive, customizable, and feature-rich form creation tool for you to create surveys, forms, and quizzes with question options like multiple choice, multiple select, short answer, long answer, and more! To use it, simply sign in to a MacWeb account or select guest mode (which hopefully reduces voting friction). There are also a lot of different form settings for presentation, response management, quiz accuracy, visibility, and public/private forms, as well as options to invite collaborators to work on and manage the form together. You can browse other people’s forms and search your own forms as well. You can also visualize and view response statistics and individual responses with graphs and question response lists. The entire platform supports light/dark mode, smooth animations and transition effects, responsive design, accessibility, and SEO, as well as other quality of life improvements that hopefully make the website’s UI and UX more intuitive and user friendly. The codebase is surprisingly complex (and poorly organized :( , but I somehow managed to make everything work as expected. I really had a lot of fun working on and trying out this project myself, so hopefully yall will like it too :)", "repo": "https://github.com/Mac-Web/macforms", "demo": "https://macforms.macweb.app"}]...
|
[{"post_id": 81391, "ts": "202 [{"post_id": 81391, "ts": "2026-10-21T03:10:05Z", "hours": 0.9758, "text": "Quick final devlog before shipping!!! I finally finished all the features, customization, and everything else I planned to implement for MacForms after working (but mostly procrastinating) on it for more than 3 months ! I have no clue why this wasn’t done earlier, but I added a multiple select option for multiple choice questions to allow respondents to select multiple options (which also works with quizzes and other edge cases) Similarly, I also added an option to mark free response/text questions as having a long answer to render a textarea instead of the normal input field for more customization I already added most of these features while planning out the types and schemas, but somehow never implemented it, so it was kind of confusing but I was able to create them more quickly and easily that I’d expected Added guest mode so yall can actually try out the form engine without signing up (is that low enough friction for you guys ) Updated styling and readme Polished some other stuff for shipping! I’ve already wasted so much of Stardance’s extension not shipping any of my projects , so I panicked when I realized there was only 10 days left and forced myself to actually get to work and finish this project, hopefully you’ll enjoy and like it as much as I do :)"}, {"post_id": 78807, "ts": "2026-10-11T17:45:46Z", "hours": 2.6433, "text": "Individual responses and form options You can now also see, select, and manage each individual response to view in detail instead of only seeing summary graphs/tables of all the responses combined There’s a new dropdown on the form responses page where you can either view the summary stats/answers of all responses (default), or select every individual response to view its answer to each question, submission/edit date and time, accuracy (if the form is a quiz), as well as an option to delete the response after confirmation to make viewing responses easier and more useful If you make your form a quiz and designate certain questions as having correct answers, you can now finally select one or multiple options to all be correct for each question! This took a surprisingly long time since I had to fix a lot of bugs based on the old system Added sorting, filtering, and ordering dropdowns and options to the public form browse page to make finding and viewing different forms a lot easier I just realized there are a few bugs in prod while recording the video, so looks like more fun bug fixing in the next devlog Updated types and backend schemas to accept the new options Updated styling and colors I am now dedicating most of my time on (really amazing event btw), so I can only work on trying to finish and ship my Stardance projects on the little time I have on weekends, so hopefully I’ll be able to ship MacForms this weekend and finally finish my other Stardance projects before it ends"}, {"post_id": 76896, "ts": "2026-10-04T23:55:06Z", "hours": 3.3086, "text": "A bunch of small additions and changes! Added the Browse tab where you can see all the published public forms that other people made on MacForms! You can explore all the different forms easily with the search bar Finally added a nav search bar that actually works (instead of the old placeholder) by querying the new API endpoint for either your own forms or other people’s public forms so you can access everything faster and more easily Search results are matched by both title and description to be more useful, and your own forms take you directly to the edit page while others’ forms take you to the form filling page Added a bunch of smooth animations and transition effects for page loads, interactions, and search/filter results to improve user experience and interactivity Added responsive design on all the pages and components so MacForms is accessible and functional on all screen sizes Added feature description sections, icons, and buttons on the home landing page I have no idea why this was even a thing before, but now you can actually access the form pages and fill out the forms without being logged in Apparently my thought all get requests had to pass the auth gate or something, but now it’s fixed Removed the Settings tab (not form settings), because I couldn’t figure out anything to put there since I already have account settings on MacWeb, a separate form settings tab, and a dark/light mode toggle Updated styling and layout Fixed a few display bugs"}, {"post_id": 72023, "ts": "2026-09-22T00:50:01Z", "hours": 4.1978, "text": "MacForms is back: form settings and light mode! After taking a break from working on MacForms for 2 months to work on other projects, prepare for school, and do a lot of other stuff, I’m finally back to developing this project and getting it ready to ship before Stardance ends in 9 days! (plz extend the end date ) In this pretty massive devlog, I added a new settings tab to the form editing page where you can customize the published form’s presentation and many other options here are the settings I implemented, there might be other important stuff I forgot: whether to shuffle questions randomly whether to shuffle the multiple choice options for each question a custom background color for the top banner allow respondents to submit another response allow respondents to edit their submitted responses Because I couldn’t figure out a way (if there is one) to implement the last 2 without using accounts or cookies, if a form has either of the 2 enabled, you’ll need to sign in first to fill out the form Added a light/dark mode toggle option to the nav user dropdown menu for you to easily customize the site’s appearance and switch between light and dark modes Since I had to manually go through basically every component and page of the entire platform to modify the elements’ Tailwind classes for this, it also gave me a chance to refresh my memory of the project’s structure and how it works because I was gone for so long Going through all the files and testing the 2 modes was a long and tedious process, but the result turned out pretty well, both are consistent and visually appealing, and there’s also a smooth color transition Added a top loading indicator bar to improve the UX since some pages take a bit to load and the site may look unresponsive without the loading bar Fixed a few math bugs with 0s and NaNs and display bugs with the colors, layout, placeholder, and other styling Because Stardance is ending so soon and because of my procrastination and laziness, I’m going to have to cut a lot of the originally planned features before shipping since I have another big project to ship, so hopefully I can finish some last few features and polish MacForms and ship it soon!"}, {"post_id": 37716, "ts": "2026-07-30T16:54:37Z", "hours": 1.9336, "text": "Publish & share form You can now publish and share your forms for the rest of the world to see and fill out! Clicking on the publish button on the tool bar now opens a modal where you can either publish/unpublish the form or copy the link and send it to people If the form is already published, you can see its public link and an option to shorten it. Shortening it creates a unique 8-digit shortcut id for the form that redirects you to the main form (I’m planning on shortening it even more by buying a cool short domain or something, but that’s probably not gonna happen any time soon) You can also unpublish the form after a confirmation warning by clicking on the unpublish button If the form hasn’t been published yet, you can publish it by clicking on the publish button (in case this isn’t already obvious ) Updated some permissions so collaborators can also manage the form’s publication visibility status (instead of only the owner) Updated schema and types"}, {"post_id": 37141, "ts": "2026-07-29T17:06:56Z", "hours": 2.0547, "text": "Score distribution & autosave Added a quiz results summary section on the responses tab that shows some useful statistics about the scores as well as a histogram showing the score distribution if your form is a quiz It dynamically calculates scores based on the latest updated quiz, then organizes them and calculates their mean, median, min, and max in percentages It also renders a custom histogram with bins of 10 ranging from 0 to 100 so you can visualize how well your respondents did in one glance (server rendered + no Chart.js or external libraries = almost instantaneous load time) The histogram also shows the percentages of scores, and you can see how many responses are in each bin by hovering over the bar There’s also a view scores button that displays a modal showing each individual score Added autosave for editing forms that autosaves the entire form in the background every minute without revalidating the frontend to ensure smooth UX. The bar also shows the autosave status for a few seconds telling you it autosaved Added collaborator access so they can actually edit and manage the form and view responses without getting redirected. Updated some backend operations to ensure permissions are correct as well Fixed form editing so it actually updates the form and each question individually instead of creating a completely new set of it and neglecting the originally existing relations (~50 lines of code for one database transaction , but Prisma is actually so nice 🥹) Added filters and sort methods for shared forms vs forms you own (shared forms now display on the forms page)"}, {"post_id": 36789, "ts": "2026-07-29T02:03:54Z", "hours": 2.9133, "text": "Invite collaborators & update form You can now invite collaborators that will have access to edit the form, see its responses, and manage its settings! Only the form owner/creator can delete the form and invite and remove people, but invited people can basically do everything else On the invite modal page, you can search for MacWeb accounts by their name, email, or about through an API endpoint I added, and select multiple people to invite to the form at once Once you send out the invitation, you’ll see the users added to the form on the modal, and you can remove their access by clicking on the trash icon as well There isn’t real time form collaborative editing (at least not yet, though I don’t plan on overcomplicating a simple form app to be like Google Forms ), but changes you make to the form are revalidated the moment you click on save You can now actually edit and update your form by going to the edit tab and editing the form and its questions. This was actually fairly easy to implement since I just had to use the component used for the form creation page and update a few things Optimized database operations and API calls Updated schema and types Updated styling"}, {"post_id": 36475, "ts": "2026-07-28T16:42:14Z", "hours": 3.4131, "text": "Edit form & response pages Finally added the form editing page where you’ll be able to edit the entire form (title, description, questions, etc.), view response summaries and statistics, and configure its submission settings and other defaults When you click on one of your forms on the forms tab, you get redirected to the edit page that has a top utility bar with the form’s name displayed (you can rename the form by clicking on it) and 3 tabs for you to switch between edit, response, and settings modes On the right of the bar, there’s also an invite button, a preview form button, and a publish button (currently doesn’t work yet ) Clicking on the invite button opens a modal where you can either invite another MacWeb account to be a permanent collaborator (of course it doesn’t work yet), or generate a one-time single-use invite link/code that allows anyone (with or without an account) with the access code to edit the form using a custom access token cookie that expires after an hour Making this cookie access thing work was actually a bit more complicated than I thought, so I spent some time debugging the logic but it was pretty fun When you use the access code to edit a form, a page shows up confirming the access, and invalidates the code after confirming When you click on the responses tab, you can see all the responses and answers grouped by question to make visualizing and summarizing people’s responses a lot easier (definitely didn’t take inspo from Google Forms ) If the question is multiple choice, it shows how many responses each option got with percentages and presents it in sort of a bar graph If the question is free responses, it just lists each response Added placeholder tabs for editing and settings Added SEO for these tabs Updated types and schema Updated styling"}, {"post_id": 36034, "ts": "2026-07-27T21:08:54Z", "hours": 1.2928, "text": "Sorting & filtering Added sorting, filtering, and ordering dropdowns to the forms page so you can better browse and search through your forms! You can sort the forms by name, date created, type, starred, and more, and you can filter them by quiz, starred, private, and open. You can change the display order between descending and ascending as well Added form starring so you can now star/favorite/pin your most important forms directly by clicking on the star icon on the form card, or by clicking on the star option in the popup menu Added icons to form cards to better display the form’s information and attributes Added an access lock page for private forms that prompts for the access code, and it only shows the questions and allows you to fill out the form after verifying successfully Added a form not open page that shows if a form isn’t open (isn’t published), but if you’re the owner you can still see it with preview mode Updated schema and types Updated layout and styling"}, {"post_id": 35556, "ts": "2026-07-27T02:15:20Z", "hours": 2.9525, "text": "Form management & quizzes Added the Forms page where you can browse, search, view, and manage all the forms you created (you’ll be able to filter and sort them to browse and search through them more easily in the future) Each form is displayed as a card with a placeholder icon, title, shortened description preview, and creation date listed When you click on the 3 dots option button a menu shows up where you can edit the form (takes you to edit page), preview it (takes you to submission page but in preview mode), or delete it Preview mode only activates when you own the form, are logged in, and the link has the preview search param. In this mode, you can fill out the questions but can’t submit it, and you can go back to the edit page by clicking on the x icon When you click on delete, a confirmation modal shows up, and only deletes your form after confirmation so you don’t accidentally delete stuff Added quiz mode to forms so you can create quizzes with correct answers (for both multiple choice and free response questions) and see how your respondents do! On the quiz creation page, you can check the quiz checkbox to turn the form into a quiz, and you can customize each question individually to either accept a correct answer (multiselect coming soon) or to allow all choices If you fill out a form that’s a quiz, you will be able to see your score and accuracy (but not the correct answer) after submitting it Implementing the logic and types for quizzes was kind of a pain but I still managed to fix all the weird edge case bugs Added both static and dynamically generated SEO metadata across all pages on MacForms to make the site more accessible and user friendly Added a placeholder settings page You can now delete questions after a confirmation modal on the form creation page if you have multiple questions Updated styling and types Updated README This is a pretty big update that covers a ton of features, so the video is 3 minutes long and I had to compress it like 2 times…"}, {"post_id": 35426, "ts": "2026-07-26T20:31:56Z", "hours": 2.69, "text": "Form responses Added an actual public facing form submission page where anyone (regardless of whether or not they’re logged in) can fill out a form and submit their response On the response submission page, you can see the form’s title, description, creation date, all the questions and their choices/inputs rendered correctly, a submit button that submits your response, and a clear button that will clear everything you filled in after showing a confirmation modal If you haven’t filled out all the required fields before submitting, it shows a helpful warning message that tells you to fill out the options You can deselect your choice for a multiple choice question if it’s not required by clicking on the same choice again (but this isn’t allowed for required questions because duh ) Public/private forms aren’t implemented yet so the moment you create a form it’s respondable by anyone Once you submit your response, a response confirmation page will display confirming your submission, and it also shows an edit response option, as well as a submit another response option Response editing works by adding a search param with your response id after the form page path, so it dynamically fetches your response data and fills it in automatically The submit another response option just refreshes the page to create a new blank response state object Added a different layout for the form submission page (since nav and footer aren’t needed), so I had to reorganize the routes and folders into logical groups to make different layouts work Added schema and types for response data Updated styling and navigation"}, {"post_id": 34381, "ts": "2026-07-25T01:33:02Z", "hours": 3.0203, "text": "Form submission & auth Finally added backend form submission so when you click on save on the form creation page after filling in all the values, it gets created and added to the database When you click on save, MacForms validates all your new form’s values (title, description, etc.), as well as each question’s choices to make sure everything’s filled out properly If you’re missing fields or something isn’t validated, a helpful error message will appear telling you what to fix Once you successfully submit the new form, you get redirected to the form editing page where you will be able to edit it, change its settings, check the preview, and publish it (the page isn’t implemented yet) You can also delete options/choices for multiple choice questions, as long as there’s at least one available choice If you’re logged in, you can see your profile icon displayed on the right of the nav bar, and clicking on it opens a menu where you can view your account profile (redirects you back to MacWeb), toggle light/dark mode (doesn’t work yet), and log out I spent a ton of time trying to debug and make the log out thing work because of this entire cross subdomain auth thing that just makes everything super complicated and frustrating, but I figured it out and fixed it by changing a few auth configs Designed and added the MacForms logo (just a list icon on a green background) to the nav bar and the site favicon. The design is pretty terrible, hopefully I’ll come up with a better design Also spent a lot of time testing to ensure the app, especially auth, works both locally in dev environment and in production Added a helper function to fetch form data from Prisma, destructure and sanitize the data, and do some conditional typing to match the types and ensure type safety Updated README to be more informative on dev setup since there’s quite a few steps for setup and I don’t wanna forget them in the future Updated schema and types"}, {"post_id": 33842, "ts": "2026-07-24T02:42:42Z", "hours": 5.1803, "text": "Form creation & homepage I forgot to add devlogs for a couple days, so this devlog will be a bit long and cover a ton of changes Added a basic homepage with a hero that has a title, description, and some call to action buttons, and a few sections that are just placeholder text and images for now to fill the layout Added a navigation bar at the top with links to a few pages and an interactive search bar that doesn’t actually work yet (since there’s nothing to search) Copied the MacWeb footer and changed some links and styling to add the footer Auth isn’t completely set up yet, so a few things aren’t being displayed properly. Even if you’re not logged in, you can still access the form creation page, it just doesn’t do anything yet On the form creation page (that is a form itself), you can fill in the form’s name, description, visibility (making it private requires an access code, which you can generate or type in manually), and whether it’s accepting responses You can add new questions by clicking on the add question card, which shows a new question where you can select its type (only multiple and text are supported right now), set the question and description, set it as required/optional, and add answer choices or set the input placeholder depending on the question type The backend for making and publishing forms isn’t set up yet, so it’s only the frontend that doesn’t actually do anything Adding types for the form, questions, and answer choices was a huge pain because I had to set up a type map, extract its keys, and use them to dynamically construct type unions and some other advanced stuff for to dynamically infer option types based on the question type, and it was a huge headache to figure out Updated Prisma schema and added other types Updated styling and navigation"}, {"post_id": 31522, "ts": "2026-07-20T00:22:55Z", "hours": 1.3511, "text": "MacForms: simple but customizable form creation tool I’m building MacForms, an easy to use form creation tool with a lot of features and customization! This is actually a subapp of my online platform MacWeb with many different apps you can try out I started this app because I have to make a form for a few people to fill out, and instead of using Google Forms or Notion like a weirdo, I decided to make my own form tool and use it to make the form like a totally normal person Since this is a subapp of the main platform, it shares the same auth and database system with the other apps, so I had to update and migrate a ton of stuff on the root domain before I could start working on this app The auth system was also challenging to configure properly, but I figured out how to share cookie sessions across subdomains for my account system after a few hours of painful debugging After the root domain was migrated and updated properly, I could finally start working on MacForms and set up the project and its dependencies Currently there isn’t much since auth took so much time to work, but the hardest part is finished, so hopefully the rest of development will be smoother Also set up some DNS and Vercel records for the real domain to work"}]...
|
Title: MacForms by @tonymac129 | Stardance
Devlog Title: MacForms by @tonymac129 | Stardance
Devlogs:
MacForms: simple but customizable form creation tool I’m building MacForms, an easy to use form creation tool with a lot of features and customization! This is actually a subapp of my online platform MacWeb with many different apps you can try out I started this app because I have to make a form for a few people to fill out, and instead of using Google Forms or Notion like a weirdo, I decided to make my own form tool and use it to make the form like a totally normal person Since this is a subapp of the main platform, it shares the same auth and database system with the other apps, so I had to update and migrate a ton of stuff on the root domain before I could start working on this app The auth system was also challenging to configure properly, but I figured out how to share cookie sessions across subdomains for my account system after a few hours of painful debugging After the root domain was migrated and updated properly, I could finally start working on MacForms and set up the project and its dependencies Currently there isn’t much since auth took so much time to work, but the hardest part is finished, so hopefully the rest of development will be smoother Also set up some DNS and Vercel records for the real domain to work
Form creation & homepage I forgot to add devlogs for a couple days, so this devlog will be a bit long and cover a ton of changes Added a basic homepage with a hero that has a title, description, and some call to action buttons, and a few sections that are just placeholder text and images for now to fill the layout Added a navigation bar at the top with links to a few pages and an interactive search bar that doesn’t actually work yet (since there’s nothing to search) Copied the MacWeb footer and changed some links and styling to add the footer Auth isn’t completely set up yet, so a few things aren’t being displayed properly. Even if you’re not logged in, you can still access the form creation page, it just doesn’t do anything yet On the form creation page (that is a form itself), you can fill in the form’s name, description, visibility (making it private requires an access code, which you can generate or type in manually), and whether it’s accepting responses You can add new questions by clicking on the add question card, which shows a new question where you can select its type (only multiple and text are supported right now), set the question and description, set it as required/optional, and add answer choices or set the input placeholder depending on the question type The backend for making and publishing forms isn’t set up yet, so it’s only the frontend that doesn’t actually do anything Adding types for the form, questions, and answer choices was a huge pain because I had to set up a type map, extract its keys, and use them to dynamically construct type unions and some other advanced stuff for to dynamically infer option types based on the question type, and it was a huge headache to figure out Updated Prisma schema and added other types Updated styling and navigation
Form submission & auth Finally added backend form submission so when you click on save on the form creation page after filling in all the values, it gets created and added to the database When you click on save, MacForms validates all your new form’s values (title, description, etc.), as well as each question’s choices to make sure everything’s filled out properly If you’re missing fields or something isn’t validated, a helpful error message will appear telling you what to fix Once you successfully submit the new form, you get redirected to the form editing page where you will be able to edit it, change its settings, check the preview, and publish it (the page isn’t implemented yet) You can also delete options/choices for multiple choice questions, as long as there’s at least one available choice If you’re logged in, you can see your profile icon displayed on the right of the nav bar, and clicking on it opens a menu where you can view your account profile (redirects you back to MacWeb), toggle light/dark mode (doesn’t work yet), and log out I spent a ton of time trying to debug and make the log out thing work because of this entire cross subdomain auth thing that just makes everything super complicated and frustrating, but I figured it out and fixed it by changing a few auth configs Designed and added the MacForms logo (just a list icon on a green background) to the nav bar and the site favicon. The design is pretty terrible, hopefully I’ll come up with a better design Also spent a lot of time testing to ensure the app, especially auth, works both locally in dev environment and in production Added a helper function to fetch form data from Prisma, destructure and sanitize the data, and do some conditional typing to match the types and ensure type safety Updated README to be more informative on dev setup since there’s quite a few steps for setup and I don’t wanna forget them in the future Updated schema and types
Form responses Added an actual public facing form submission page where anyone (regardless of whether or not they’re logged in) can fill out a form and submit their response On the response submission page, you can see the form’s title, description, creation date, all the questions and their choices/inputs rendered correctly, a submit button that submits your response, and a clear button that will clear everything you filled in after showing a confirmation modal If you haven’t filled out all the required fields before submitting, it shows a helpful warning message that tells you to fill out the options You can deselect your choice for a multiple choice question if it’s not required by clicking on the same choice again (but this isn’t allowed for required questions because duh ) Public/private forms aren’t implemented yet so the moment you create a form it’s respondable by anyone Once you submit your response, a response confirmation page will display confirming your submission, and it also shows an edit response option, as well as a submit another response option Response editing works by adding a search param with your response id after the form page path, so it dynamically fetches your response data and fills it in automatically The submit another response option just refreshes the page to create a new blank response state object Added a different layout for the form submission page (since nav and footer aren’t needed), so I had to reorganize the routes and folders into logical groups to make different layouts work Added schema and types for response data Updated styling and navigation
Form management & quizzes Added the Forms page where you can browse, search, view, and manage all the forms you created (you’ll be able to filter and sort them to browse and search through them more easily in the future) Each form is displayed as a card with a placeholder icon, title, shortened description preview, and creation date listed When you click on the 3 dots option button a menu shows up where you can edit the form (takes you to edit page), preview it (takes you to submission page but in preview mode), or delete it Preview mode only activates when you own the form, are logged in, and the link has the preview search param. In this mode, you can fill out the questions but can’t submit it, and you can go back to the edit page by clicking on the x icon When you click on delete, a confirmation modal shows up, and only deletes your form after confirmation so you don’t accidentally delete stuff Added quiz mode to forms so you can create quizzes with correct answers (for both multiple choice and free response questions) and see how your respondents do! On the quiz creation page, you can check the quiz checkbox to turn the form into a quiz, and you can customize each question individually to either accept a correct answer (multiselect coming soon) or to allow all choices If you fill out a form that’s a quiz, you will be able to see your score and accuracy (but not the correct answer) after submitting it Implementing the logic and types for quizzes was kind of a pain but I still managed to fix all the weird edge case bugs Added both static and dynamically generated SEO metadata across all pages on MacForms to make the site more accessible and user friendly Added a placeholder settings page You can now delete questions after a confirmation modal on the form creation page if you have multiple questions Updated styling and types Updated README This is a pretty big update that covers a ton of features, so the video is 3 minutes long and I had to compress it like 2 times…
Sorting & filtering Added sorting, filtering, and ordering dropdowns to the forms page so you can better browse and search through your forms! You can sort the forms by name, date created, type, starred, and more, and you can filter them by quiz, starred, private, and open. You can change the display order between descending and ascending as well Added form starring so you can now star/favorite/pin your most important forms directly by clicking on the star icon on the form card, or by clicking on the star option in the popup menu Added icons to form cards to better display the form’s information and attributes Added an access lock page for private forms that prompts for the access code, and it only shows the questions and allows you to fill out the form after verifying successfully Added a form not open page that shows if a form isn’t open (isn’t published), but if you’re the owner you can still see it with preview mode Updated schema and types Updated layout and styling
Edit form & response pages Finally added the form editing page where you’ll be able to edit the entire form (title, description, questions, etc.), view response summaries and statistics, and configure its submission settings and other defaults When you click on one of your forms on the forms tab, you get redirected to the edit page that has a top utility bar with the form’s name displayed (you can rename the form by clicking on it) and 3 tabs for you to switch between edit, response, and settings modes On the right of the bar, there’s also an invite button, a preview form button, and a publish button (currently doesn’t work yet ) Clicking on the invite button opens a modal where you can either invite another MacWeb account to be a permanent collaborator (of course it doesn’t work yet), or generate a one-time single-use invite link/code that allows anyone (with or without an account) with the access code to edit the form using a custom access token cookie that expires after an hour Making this cookie access thing work was actually a bit more complicated than I thought, so I spent some time debugging the logic but it was pretty fun When you use the access code to edit a form, a page shows up confirming the access, and invalidates the code after confirming When you click on the responses tab, you can see all the responses and answers grouped by question to make visualizing and summarizing people’s responses a lot easier (definitely didn’t take inspo from Google Forms ) If the question is multiple choice, it shows how many responses each option got with percentages and presents it in sort of a bar graph If the question is free responses, it just lists each response Added placeholder tabs for editing and settings Added SEO for these tabs Updated types and schema Updated styling
Invite collaborators & update form You can now invite collaborators that will have access to edit the form, see its responses, and manage its settings! Only the form owner/creator can delete the form and invite and remove people, but invited people can basically do everything else On the invite modal page, you can search for MacWeb accounts by their name, email, or about through an API endpoint I added, and select multiple people to invite to the form at once Once you send out the invitation, you’ll see the users added to the form on the modal, and you can remove their access by clicking on the trash icon as well There isn’t real time form collaborative editing (at least not yet, though I don’t plan on overcomplicating a simple form app to be like Google Forms ), but changes you make to the form are revalidated the moment you click on save You can now actually edit and update your form by going to the edit tab and editing the form and its questions. This was actually fairly easy to implement since I just had to use the component used for the form creation page and update a few things Optimized database operations and API calls Updated schema and types Updated styling
Score distribution & autosave Added a quiz results summary section on the responses tab that shows some useful statistics about the scores as well as a histogram showing the score distribution if your form is a quiz It dynamically calculates scores based on the latest updated quiz, then organizes them and calculates their mean, median, min, and max in percentages It also renders a custom histogram with bins of 10 ranging from 0 to 100 so you can visualize how well your respondents did in one glance (server rendered + no Chart.js or external libraries = almost instantaneous load time) The histogram also shows the percentages of scores, and you can see how many responses are in each bin by hovering over the bar There’s also a view scores button that displays a modal showing each individual score Added autosave for editing forms that autosaves the entire form in the background every minute without revalidating the frontend to ensure smooth UX. The bar also shows the autosave status for a few seconds telling you it autosaved Added collaborator access so they can actually edit and manage the form and view responses without getting redirected. Updated some backend operations to ensure permissions are correct as well Fixed form editing so it actually updates the form and each question individually instead of creating a completely new set of it and neglecting the originally existing relations (~50 lines of code for one database transaction , but Prisma is actually so nice 🥹) Added filters and sort methods for shared forms vs forms you own (shared forms now display on the forms page)
Publish & share form You can now publish and share your forms for the rest of the world to see and fill out! Clicking on the publish button on the tool bar now opens a modal where you can either publish/unpublish the form or copy the link and send it to people If the form is already published, you can see its public link and an option to shorten it. Shortening it creates a unique 8-digit shortcut id for the form that redirects you to the main form (I’m planning on shortening it even more by buying a cool short domain or something, but that’s probably not gonna happen any time soon) You can also unpublish the form after a confirmation warning by clicking on the unpublish button If the form hasn’t been published yet, you can publish it by clicking on the publish button (in case this isn’t already obvious ) Updated some permissions so collaborators can also manage the form’s publication visibility status (instead of only the owner) Updated schema and types
MacForms is back: form settings and light mode! After taking a break from working on MacForms for 2 months to work on other projects, prepare for school, and do a lot of other stuff, I’m finally back to developing this project and getting it ready to ship before Stardance ends in 9 days! (plz extend the end date ) In this pretty massive devlog, I added a new settings tab to the form editing page where you can customize the published form’s presentation and many other options here are the settings I implemented, there might be other important stuff I forgot: whether to shuffle questions randomly whether to shuffle the multiple choice options for each question a custom background color for the top banner allow respondents to submit another response allow respondents to edit their submitted responses Because I couldn’t figure out a way (if there is one) to implement the last 2 without using accounts or cookies, if a form has either of the 2 enabled, you’ll need to sign in first to fill out the form Added a light/dark mode toggle option to the nav user dropdown menu for you to easily customize the site’s appearance and switch between light and dark modes Since I had to manually go through basically every component and page of the entire platform to modify the elements’ Tailwind classes for this, it also gave me a chance to refresh my memory of the project’s structure and how it works because I was gone for so long Going through all the files and testing the 2 modes was a long and tedious process, but the result turned out pretty well, both are consistent and visually appealing, and there’s also a smooth color transition Added a top loading indicator bar to improve the UX since some pages take a bit to load and the site may look unresponsive without the loading bar Fixed a few math bugs with 0s and NaNs and display bugs with the colors, layout, placeholder, and other styling Because Stardance is ending so soon and because of my procrastination and laziness, I’m going to have to cut a lot of the originally planned features before shipping since I have another big project to ship, so hopefully I can finish some last few features and polish MacForms and ship it soon!
A bunch of small additions and changes! Added the Browse tab where you can see all the published public forms that other people made on MacForms! You can explore all the different forms easily with the search bar Finally added a nav search bar that actually works (instead of the old placeholder) by querying the new API endpoint for either your own forms or other people’s public forms so you can access everything faster and more easily Search results are matched by both title and description to be more useful, and your own forms take you directly to the edit page while others’ forms take you to the form filling page Added a bunch of smooth animations and transition effects for page loads, interactions, and search/filter results to improve user experience and interactivity Added responsive design on all the pages and components so MacForms is accessible and functional on all screen sizes Added feature description sections, icons, and buttons on the home landing page I have no idea why this was even a thing before, but now you can actually access the form pages and fill out the forms without being logged in Apparently my thought all get requests had to pass the auth gate or something, but now it’s fixed Removed the Settings tab (not form settings), because I couldn’t figure out anything to put there since I already have account settings on MacWeb, a separate form settings tab, and a dark/light mode toggle Updated styling and layout Fixed a few display bugs
Individual responses and form options You can now also see, select, and manage each individual response to view in detail instead of only seeing summary graphs/tables of all the responses combined There’s a new dropdown on the form responses page where you can either view the summary stats/answers of all responses (default), or select every individual response to view its answer to each question, submission/edit date and time, accuracy (if the form is a quiz), as well as an option to delete the response after confirmation to make viewing responses easier and more useful If you make your form a quiz and designate certain questions as having correct answers, you can now finally select one or multiple options to all be correct for each question! This took a surprisingly long time since I had to fix a lot of bugs based on the old system Added sorting, filtering, and ordering dropdowns and options to the public form browse page to make finding and viewing different forms a lot easier I just realized there are a few bugs in prod while recording the video, so looks like more fun bug fixing in the next devlog Updated types and backend schemas to accept the new options Updated styling and colors I am now dedicating most of my time on (really amazing event btw), so I can only work on trying to finish and ship my Stardance projects on the little time I have on weekends, so hopefully I’ll be able to ship MacForms this weekend and finally finish my other Stardance projects before it ends
Quick final devlog before shipping!!! I finally finished all the features, customization, and everything else I planned to implement for MacForms after working (but mostly procrastinating) on it for more than 3 months ! I have no clue why this wasn’t done earlier, but I added a multiple select option for multiple choice questions to allow respondents to select multiple options (which also works with quizzes and other edge cases) Similarly, I also added an option to mark free response/text questions as having a long answer to render a textarea instead of the normal input field for more customization I already added most of these features while planning out the types and schemas, but somehow never implemented it, so it was kind of confusing but I was able to create them more quickly and easily that I’d expected Added guest mode so yall can actually try out the form engine without signing up (is that low enough friction for you guys ) Updated styling and readme Polished some other stuff for shipping! I’ve already wasted so much of Stardance’s extension not shipping any of my projects , so I panicked when I realized there was only 10 days left and forced myself to actually get to work and finish this project, hopefully you’ll enjoy and like it as much as I do :)
Ships:
I finally finished MacForms, an extensive, customizable, and feature-rich form creation tool for you to create surveys, forms, and quizzes with question options like multiple choice, multiple select, short answer, long answer, and more! To use it, simply sign in to a MacWeb account or select guest mode (which hopefully reduces voting friction). There are also a lot of different form settings for presentation, response management, quiz accuracy, visibility, and public/private forms, as well as options to invite collaborators to work on and manage the form together. You can browse other people’s forms and search your own forms as well. You can also visualize and view response statistics and individual responses with graphs and question response lists. The entire platform supports light/dark mode, smooth animations and transition effects, responsive design, accessibility, and SEO, as well as other quality of life improvements that hopefully make the website’s UI and UX more intuitive and user friendly. The codebase is surprisingly complex (and poorly organized :( , but I somehow managed to make everything work as expected. I really had a lot of fun working on and trying out this project myself, so hopefully yall will like it too :)...
|
1793357286.8997784
|
1793443686.8997784
|
|
39897
|
CodeCrak by @tonymac129 | Stardance
|
tonymac129
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: CodeCrak by @tonymac129 | Stardance
|
1792928993.2531676
|
1793792993.2531676
|
|
41770
|
MacIdeas by @tonymac129 | Stardance
|
tonymac129
|
1
|
53.0
|
825
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T05:11:51Z", "hours": 53.0, "multiplier": 15.61, "payout": 825, "blessing": "neutral", "text": "MacIdeas is a fullstack online platform for managing, organizing, and keeping track of your work, including tasks, notes, and projects! Now, before you think this is just another generic boring todo list app and give me a 1 star in originality…, well, it kind of is a todo app, but with a ton of many different features, customization, and settings, as well as notes with a complete, functional rich text editor, folders for convenient organization, and projects for organizing your different tasks, notes, folders, and everything else into manageable groups that you can easily browse through. You can edit and assign tasks priorities, due/start dates, tags, subtasks, projects, folders, links, completion, star them, and view all the info from the details panel. There are also features like search, sort, filter, tags, views, star, emojis, and other options that make browsing, navigating, and finding items a lot easier and more efficient. To make the website accessible to everyone, MacIdeas has smooth transitions and animations, fully supports both dark and light modes (and your own background images or colors), as well as responsive design for (nearly) all screen sizes, and complete SEO metadata for each page. All you need to do is to sign in with MacWeb, the central platform for my projects’ auth and account info (since MacIdeas is one of its many apps), and you’ll be redirected back and have access to try out all those features! It has everything you would expect from a real task manager and text editor, so hopefully you’ll like my project :)", "repo": "https://github.com/Mac-Web/macideas-next", "demo": "https://macideas.macweb.app"}]...
|
[{"post_id": 71609, "ts": "202 [{"post_id": 71609, "ts": "2026-09-21T04:58:39Z", "hours": 4.6342, "text": "Last devlog: note features and final touches! MacIdeas is finally finished and ready to ship! In this last massive devlog, I added a few new quality of life features, did a ton of general/styling/auth bug fixes, and polished the entire project ! Added note content persistence, meaning you can actually save each note’s content to your account data, including its text, formatting, and everything. Autosave automatically does this every 30 seconds, but you can also manually save with ctrl+s or by pressing the save button Added a few new editor features from Tiptap for typography and general formatting to make note taking more powerful and complete You can now select custom background colors (along with custom backdrop images) to customize the appearance of each task list and note page ! The nav search had been there doing nothing ever since the first devlog , so I finally added a powerful search bar to the nav bar that uses a new API endpoint to search through all the information in all your task lists, tasks, notes, projects, and folders and displays the results as a list of links for convenient browsing and navigation! Added section descriptions and icons for the major features on the homepage Updated styling, content, code, and layout Updated the README with a demo screenshot and updated info about features Fixed a lot of bugs related to general usage, empty user data, styling issues with modals, auth redirect, and many other things I don’t want to remember to improve the overall user experience I took a one week break in this last stretch, so there was probably other stuff I did that I forgot, so hopefully my storytelling isn’t that bad"}, {"post_id": 66657, "ts": "2026-09-12T14:50:05Z", "hours": 3.7656, "text": "Rich text editing for notes! Added a complete, feature-rich, and easy to use rich text editor for creating and editing your notes! This means you can now actually take notes with features like text formatting, links, headings, lists, inline components, and a lot of other features you would expect from tools like Google Docs There is a top tool bar with a ton of options, buttons, and dropdowns organized into different functional sections (I definitely did not just copy GDocs ) to format/edit/modify your current content selection easily Most of the features support keyboard shortcuts (because of Tiptap), which you can see by hovering over the option and reading its tooltip I tried making my own web based rich text editor from scratch before, and it turned out to be a nightmare of dom manipulation and other headaches, so this time I decided to just use the library Tiptap, which itself is based on the library ProseMirror, to handle this pain in the butt Since Tiptap is completely headless, I still spent a lot of time going through its docs, installing useful extensions, learning their commands, and building, testing, and tweaking all the features to make everything work smoothly I don’t know why I’ve been neglecting actually adding notes for so long (before each note was just a blank page saying “Untitled note” that you couldn’t even edit ), but this actually turned out to be super fun to implement and the result was very rewarding Note saving doesn’t actually work yet (despite the fake “Note saved” autosave message ) since there are still some things about the editor to fix, but hopefully that’ll be implemented soon and MacIdeas will be almost ready to ship! The text editor also works with light mode, and I also updated some styling to improve the UI"}, {"post_id": 65705, "ts": "2026-09-11T01:12:55Z", "hours": 2.3211, "text": "Light mode toggle The mode option in the nav user menu now toggles the site’s entire appearance between dark and light mode to improve its customizability and accessibility Because every component has a default color transition, switching between the 2 modes has a smooth UI transition instead of flashing to the other color instantly I had to set up the theme provider and manually add the light mode Tailwind classes and the dark mode prefix for all the colors in every page and component, as well as accounting for all most of the display color edge cases, so this took quite a long time but the result was worth it, both modes look pretty consistent and visually appealing I am finally back to developing MacIdeas after taking a one month break, so I spent some time familiarizing myself with the codebase again. Hopefully this time I’ll be able to finish and ship it soon! Updated styling and layout Added and updated some dependencies"}, {"post_id": 45249, "ts": "2026-08-11T16:25:12Z", "hours": 5.2492, "text": "Project page and contents Added a dedicated page for each project that is its own file browser where you can open/interact with the contents, view their information and metadata, and search, filter, and sort through them so you can better manage and view your projects Added an option on the project page that opens a modal displaying all your folders, task lists, tasks, and notes grouped into 4 different tabs. Each item is a checkbox so you can select exactly which items to add to or remove from the project You can also search through each tab’s results and see their names and icons to make finding the right item quick and easy This seemed like a simple feature to implement but getting to cooperate was a nightmare since each item has its own data type, so organizing the data structure for both the frontend and backend required a lot of annoying unions and conditionals There is now a top bar in the project browser with the name, type, modified, and created labels which you can click on to sort the contents accordingly Each item also shows its type and modified & created times, as well as an icon where you can change the item’s emoji directly, making browsing and managing your stuff more convenient You can also edit the project’s name and description directly by clicking on the page title and text Updated styling and layout I procrastinated on this devlog for 2 days and got no work done, so I think this might be a sign for me to take a break from Stardance for a few days since I also need to work on hosting 8-Bit Jam (awesome game jam, if you live near nova plz go register ) and other stuff, so there won’t be new devlogs in a while"}, {"post_id": 43395, "ts": "2026-08-08T16:42:33Z", "hours": 1.8381, "text": "Project browser Added a project browser/file explorer to the project dashboard where you can search, view, and open projects and folders to browse their content ! I decided to build this file explorer instead of just a simple dashboard because I got bored and wanted to make something different, and it would make more sense to do this for projects since they are essentially just folders This file explorer is pretty similar to Google Drive and other cloud storage services, you can double click a project or folder to change directory and view its content (tasks, task lists, notes, other folders), and go back/navigate to other levels with navigation breadcrumbs I thought this would be difficult to implement and would need some kind of breadcrumb library and it turned out to be pretty simple Only projects are styled and can be opened right now, but folders and other stuff will be added in the next update! Added a menu option for adding task/note folders to projects. It opens a modal where you can view and select all the projects you’re adding the folder to, and it’ll show up in the project explorer Updated styling and content"}, {"post_id": 43017, "ts": "2026-08-08T01:36:42Z", "hours": 3.7031, "text": "Note and project management Added more note management features for editing, deleting, starring, and moving notes, as well as a dashboard for the notes page (similar to the one for tasks) You can now move notes in/out of different folders by selecting the move option and choosing the folder in the modal popup menu. You can also edit which notes are in a folder by clicking on its edit option, where you can check all the notes you want in a folder Added a top tool bar to each note page (similar to the tool bar for task lists) with the note’s emoji (clicking it opens the emoji menu where you can choose or clear the icon), name (clicking on it renamed the note), description (clicking on it also makes it editable), and current folder information displayed The tool bar also has options to upload a custom background image with an upload modal (similar to task lists), choose a custom theme (not implemented yet), star/unstar, or delete after confirming Added a sidebar for the projects page where you can create, manage, view, add icon, rename, star/unstar, and delete your projects (basically the same as the notes and tasks sidebar) Since many of the features are basically identical or very similar to tasks/task lists, I just used the existing components and copied and modified some stuff, so all these features were pretty easy and quick to implement Added recent, starred, and organized by tag sections to the notes dashboard so you can view and manage your notes more easily. You can also customize the dashboard by selecting the sections in the settings panel Updated schema and types Updated styling and layout Fixed background shadow overlay and a few other display/styling issues"}, {"post_id": 42076, "ts": "2026-08-06T17:10:52Z", "hours": 5.1608, "text": "Notes and custom backgrounds I coded for 5 hours yesterday and made a lot of progress but completely forgot to devlog , so this devlog will be a bit longer (as if my usual devlogs aren’t already long enough) to hopefully keep my storytelling good 🥺 Added the notes tab, which is the second major part of MacIdeas (the other being tasks and projects) that shares a basically identical layout with tasks, so I only had to copy a few components, modify some variables, imports, and database operations, and add new schema models and server actions to make note management work properly, though it still took quite a bit of time Currently only the sidebar is implemented for notes (instead of the actual note taking/editing part), but you can create new notes, rename them, choose their custom emojis, delete them, create and manage folders, and create notes inside folders from there You can also navigate to each note by clicking on it, but the page is blank for now. Notes share folders with tasks, so folders you make in notes also show up in tasks, and vice versa, although the specific tasks/notes in the folder aren’t displayed on the notes/tasks tab to keep organization simple (hopefully I didn’t phrase this too confusingly , maybe I’ll add an option to show both in settings) Also added projects (the third major part of MacIdeas), which are basically labels/folders that you can put tasks, task lists, folders, and notes in to conveniently keep everything related to a big project in one place Right now you can only create projects through the create project button on the sidebar and can’t do anything else with them, since I’ll only start working on projects after I finish notes Added buttons where you can upload a custom background image or select a color theme (not implemented yet) for each individual task list to make customization even better and personalized! When you click on the custom background option, an upload modal appears where you can upload a png/jpg/webp <4MB to be the background! I originally tried using uploadthing since it was the only object storage service I worked with, but I just couldn’t get the event hooks to load or work at all despite copying stuff from my old project and wasting an hour researching , so I decided to settle with Vercel Blobs (because it’s already hosted on Vercel) and it’s actually so much faster and easier to set up/integrate Some of the components are opaque, so they look kind of weird with a custom background, so I’ll be fixing that soon, but for the most part custom backgrounds actually look decent somehow Task lists without a custom background have a black overlay shadow that’s out of place, so that has to fixed too Also added a bunch of random small quality of life features and adjustments that I don’t remember without looking at my commits Updated schema and types Updated styling"}, {"post_id": 41429, "ts": "2026-08-05T17:05:00Z", "hours": 3.1761, "text": "Dashboard customization and My Day Added settings for customizing your personal tasks page dashboard, where you can select which tasks to show and which task filter sections to display on your main tasks page to make it completely customized You can access the settings modal by clicking on the gear icon on the top right of the tasks page, where you can select the checkboxes that you want to show on the page. You can reset the settings defaults as well by clicking on the reset option and confirming Dashboard tasks now also show their priority and tags All your homepage settings and customization are automatically saved to the account backend so the settings are synced across all your devices Added the “My Day” page that shows all your tasks that either start or due today (in your local timezone, refreshes daily automatically), or you can add custom tasks for the day here without putting it in any task list to help plan out your day better My Day is essentially a special task list and you can do all the stuff you can do with normal tasks and task lists (browsing, sorting, managing, etc.), and it shows up as its own tab on the left sidebar. I thought this would be hard to implement architecturally, but I just had to add a few fields and conditionals to make it work properly Added the tags dashboard section where you can view all the tasks with a certain tag Updated the data fetching logic for the dashboard to be more efficient, optimized, and customized according to the settings Updated schema and constants Updated styling Updated README Fixed a few visual bugs"}, {"post_id": 40963, "ts": "2026-08-04T20:46:14Z", "hours": 2.8342, "text": "Dashboard and Subtasks Added a few interactive widgets to the task dashboard showing tasks grouped in different categories so you can browse all your tasks quickly and easily The different task widgets, each with a different icon, are starred, priority, upcoming, starting soon, recent, and tag tasks. The widgets basically act like filters for all your tasks across all task lists so you don’t need to manually dig through them to find what you’re looking for You can now add subtasks to your tasks! Subtasks are basically just very simple tasks without any of the fancy features (since that would be annoying to implement and it’s just pretty impractical) that are just smaller steps broken down from the main task You can add, view, and manage (completing, renaming, or deleting) each task’s subtasks sorted by completion status in the task details panel, and you can see each task’s subtasks directly displayed below the main task You can also mark subtasks as completed by clicking on the circle on the task item, and the text will be striked through and grayed out Added a home/task dashboard link to the left sidebar Updated schema and types Updated styling and layout Updated README with more detailed info and specific features"}, {"post_id": 40514, "ts": "2026-08-04T03:06:03Z", "hours": 3.7111, "text": "Priority and folders! You can now assign an importance priority flag for each task to better keep track of your most important todos and manage/view them more easily with this feature ! You can change the priority of a task by clicking on one of the 4 options in the priority dropdown that appears when you hover over the task. Each priority has a different color (none-transparent, low-green, medium-yellow, high-red) to help distinct them visually. If a task has a priority, the status is permanently stickied on the task so it’s always visible You can sort and filter tasks by priority as well to automatically group and view your most important tasks You can customize the new task’s priority by changing the new task input field’s priority dropdown menu. You can also edit a task’s priority in the task details panel You can now create custom folders to group and organize your task lists by clicking on the create folder option on the task sidebar ! Clicking on the folder toggles the visibility of its task list content, and hovering over it shows an options icon that opens a menu where you can edit, rename, change the folder icon color, or delete the folder The edit option opens a modal where you can search and select the task lists to add or remove from the folder The rename option turns the folder name into an input that saves on blur, the color option shows a color picker for the icon color, and the delete option deletes the folder and its task lists after confirmation You can also directly create new task lists inside a folder by clicking on the add option on the folder. You can move task lists in/out of folders as well by clicking on the move option, which opens a similar modal where you can search and select which folder to move the task to Drag and drop for moving task lists in/out of folders isn’t implemented yet, because it’s actually quite a challenging thing to do (for me) , but hopefully I’ll have time to try to implement it Updated schema and types Updated UI components and styling Fixed display overflow height styling issues"}, {"post_id": 40161, "ts": "2026-08-03T15:52:29Z", "hours": 2.6514, "text": "Due dates and more random features You can now add due dates and start dates to tasks to better keep track of them and remind yourself when to stop procrastinating and actually get to work ! When you click on the calendar icon on a task, a modal shows up with 2 fields where you can pick the precise date and time for when the task starts/dues. I used the kind of outdated library Flatpickr for this since I was too lazy to build my own calendar time picker thing You can also clear/remove the selected time by clicking on the x icon next to the date field. Save the changes by clicking on the save button You can edit/select the times by clicking on the date fields in the task details panel as well. Start and due dates show up as a small text below the main task on the page so you can easily see when each task is due Added options to sort tasks by due and start dates so you can see which tasks are coming up soon! Also added a separate section in the filter dropdown for filtering by your own tags to better organize and view your different tasks The pen edit/rename option on the task list is now finally implemented! Clicking on it turns the task text into an input field that you can edit, and the new name is saved when you click away from it The tag, calendar, and star icons on the task input field now do something for the new task! Similar to task items, the tag and calendar options both open a modal for you to select the options for the new task, and the star icon marks it as starred. This makes it a lot easier to customize the task before actually adding it to the list Updated schema and types Updated styling and UI components Fixed a legacy dependency (Emoji Mart is unmaintained ) compatibility issue that caused a few previous commits to fail in production build Not gonna lie I’m pretty proud of the UI and layout all the different options and components actually sort of make MacIdeas look like a legit app There seems to be an issue with Firefox screenshots that fails to capture the modal’s background blur for the screenshot so it’s kinda weird"}, {"post_id": 39667, "ts": "2026-08-02T19:52:59Z", "hours": 3.9036, "text": "Tags and emojis Added task tags that you can customize and assign to different task items to better categorize and organize them! You’ll be able to group/sort by tags in the future as well, making browsing and managing tasks even more convenient When you click on the tag icon while hovering over a task item, the tag modal appears listing all the tags you created, a search bar for the tasks, as well as options to create new tags and save your selection Each tag on the modal is a checkbox, meaning you can simply check/uncheck the tags to assign them to the task Clicking on the create option displays an input where you can add a new tag that gets added to the revalidated menu Each tag also has an icon that opens a menu of options to rename, select an emoji, pick a color, and delete the tag. The rename option turns the tag into an input that you can edit, the emoji option opens the emoji picker (you can clear an existing emoji as well) so you can choose a custom icon for the tag, the color option opens a color picker where you can edit the tag’s background, and the delete option deletes the tag after confirmation There’s an option on the modal to clear all the currently assigned tags from the task item as well Up to 3 tags are displayed for each task on the task list page, and you can view all the tags a task has in the details panel (where you can open the tag modal and edit the tags too) You can now also choose an emoji for each task list by either clicking on the sidebar icon or the top bar icon! It opens an emoji picker with an option to clear the existing emoji as well Updated schema and types Updated styling and layout Fixed display height issue Fixed legacy dependency deployment issue"}, {"post_id": 38980, "ts": "2026-08-01T16:28:02Z", "hours": 1.9678, "text": "Browse & complete tasks You can now browse and filter through tasks to view and manage them more easily with the new sorting and filtering options! You can also finally mark tasks as completed once you finish them On the task list page tool bar, there’s a search bar that searched through tasks by their name and description, dropdown menus for sorting (by name, created, updated, due date, etc., some aren’t implemented yet), filtering (by starred, completion status, etc.), and ascending/descending display order to help you find and browse tasks more easily ! There’s also a checkbox that toggles the visibility of completed tasks, since they are hidden by default to avoid cluttering the page You can mark a task as completed by either clicking/checking the circle icon on each task item or selecting the completed checkbox on the task details page Incomplete and completed tasks are each grouped together regardless of sorting order to avoid confusion Completed tasks are striked through and grayed out to help with distinction. You can remark them as incomplete again any time by clicking on the icon again Fixed an annoying container height overflow display layout issue (implementing responsive design on this will be a pain in the butt ) Updated styling and layout I accidentally closed the window while recording the video so I had to rewrite this entire devlog again from memory , Stardance team please make a save devlog button like with Flavortown 🥺"}, {"post_id": 38563, "ts": "2026-08-01T01:19:19Z", "hours": 2.6092, "text": "Task creation & management You can now actually add, view, and manage your tasks in MacIdeas! You can add tasks, view details, edit, star, and delete them by clicking on the task item icons When you add a task, a task item gets added to the task list page, which when hovered shows icons/buttons to edit, manage tags, change due date, star, or delete the task. There’s also a circle on the left where you can mark the task as completed (none of these buttons work yet other than star and delete ) Clicking on the task item itself opens an animated panel on the side (similar to a lot of todo apps and the Slack profile panel) with input and textarea fields for editing the task and its description, as well as checkboxes to mark/unmark the task as completed or starred The task item details panel also shows the task’s precise created and updated timestamps, as well as its ID in the backend database (for debugging purposes) You can save the changes in the details panel by clicking on the save button, which updates and revalidates the task automatically. You can also delete the task item by clicking on the delete button and confirming the warning modal You can close the details panel by clicking on the same task item again or by clicking on the close button If a task item is starred, the star icon shows even when you’re not hovering over the task item. You’ll be able to filter and group task items by stars in the future as well Updated the task list page layout to give more space to the main section and make sure everything’s aligned and positioned nicely without any display/styling issues Added new UI components Updated styling Fixed a few styling and UX issues Updated database schema"}, {"post_id": 38314, "ts": "2026-07-31T17:10:40Z", "hours": 2.0458, "text": "Task list management Added more task list management features so you can organize and view your tasks more efficiently! Added a top tool bar on task list pages where you can rename the task list by clicking on the name, add a description, mark/unmark it as starred, and delete it When you click on delete, a confirmation warning modal shows up asking you to confirm You can also star/unstar a task list by clicking on the star icon on the left sidebar or in the options menu Starred task lists show up in a different section at the top of the sidebar to make accessing them easier and quicker Added a dropdown button that shows an additional menu for creating folders and projects (not implemented yet) next to the create task list button Added a pick emoji button for each task list on the sidebar that, of course, still doesn’t work yet Added the new task input field on the task page with a few placeholder buttons and a submit button. This where you’ll be able to add tasks, but nothing works so far Added a message screen that shows up when all the tasks are completed/there are no tasks Added dynamically generated SEO metadata for task list pages to make the site more accessible and responsive Updated schema and types Updated styling and layout"}, {"post_id": 37735, "ts": "2026-07-30T17:25:43Z", "hours": 3.29, "text": "MacIdeas: productivity & work management tool I’m starting a new project in the MacWeb collection of online apps and platforms called MacIdeas, which is basically Notion (task, note, and project management) but significantly more inferior Hopefully this project will turn out to be pretty complex so I can milk invest more hours on making and polishing this app In this pretty big initial update, I set up the Next.js project, installed its required dependencies, added a few basic pages and layouts, added a lot of UI components, and added task list management Spent quite some time configuring auth and the account system backend again since MacIdeas is hosted on a subdomain of the main macweb.app root domain which handles auth and accounts, so it was annoying setting up CORS, subdomain cookies, and user schemas (I’m not even sure if it works in production yet ) Added a nav bar and footer that were just copied from other MacWeb apps so they look consistent and updated a few links Added placeholder homepage layout and sections with images and text that don’t mean anything yet Added the main tasks page layout with a left sidebar listing all your task lists (folders and other organization stuff coming soon) and the main page displaying your actual tasks and information You can create new task lists by clicking on the create task list button on the sidebar, which creates and redirects you to the new task list that’s automatically titled “Untitled List” When you hover over a task list on the sidebar, an options icon appears that shows a menu of list management options, including rename, star (not implemented), and delete When you click on rename, the task list becomes an input where you can input the new name, and clicking out of it saves and revalidates the data When you click on delete, a confirmation warning modal appears, and the app will be redirected and revalidated after you confirm and delete the task list Once you’re signed in, your profile icon will be displayed on the nav bar and clicking on it lets you view your profile on the main domain, toggle light/dark modes (coming soon), and sign out (does this even work ?) Added static SEO for a few pages to improve accessibility and the site’s metadata Added the MacIdeas logo as the favicon and site icon Added Prisma schema and types Configured DNS and deployment stuff Fixed deployment issue"}]...
|
Title: MacIdeas by @tonymac129 | Stardance
Devlog Title: MacIdeas by @tonymac129 | Stardance
Devlogs:
MacIdeas: productivity & work management tool I’m starting a new project in the MacWeb collection of online apps and platforms called MacIdeas, which is basically Notion (task, note, and project management) but significantly more inferior Hopefully this project will turn out to be pretty complex so I can milk invest more hours on making and polishing this app In this pretty big initial update, I set up the Next.js project, installed its required dependencies, added a few basic pages and layouts, added a lot of UI components, and added task list management Spent quite some time configuring auth and the account system backend again since MacIdeas is hosted on a subdomain of the main macweb.app root domain which handles auth and accounts, so it was annoying setting up CORS, subdomain cookies, and user schemas (I’m not even sure if it works in production yet ) Added a nav bar and footer that were just copied from other MacWeb apps so they look consistent and updated a few links Added placeholder homepage layout and sections with images and text that don’t mean anything yet Added the main tasks page layout with a left sidebar listing all your task lists (folders and other organization stuff coming soon) and the main page displaying your actual tasks and information You can create new task lists by clicking on the create task list button on the sidebar, which creates and redirects you to the new task list that’s automatically titled “Untitled List” When you hover over a task list on the sidebar, an options icon appears that shows a menu of list management options, including rename, star (not implemented), and delete When you click on rename, the task list becomes an input where you can input the new name, and clicking out of it saves and revalidates the data When you click on delete, a confirmation warning modal appears, and the app will be redirected and revalidated after you confirm and delete the task list Once you’re signed in, your profile icon will be displayed on the nav bar and clicking on it lets you view your profile on the main domain, toggle light/dark modes (coming soon), and sign out (does this even work ?) Added static SEO for a few pages to improve accessibility and the site’s metadata Added the MacIdeas logo as the favicon and site icon Added Prisma schema and types Configured DNS and deployment stuff Fixed deployment issue
Task list management Added more task list management features so you can organize and view your tasks more efficiently! Added a top tool bar on task list pages where you can rename the task list by clicking on the name, add a description, mark/unmark it as starred, and delete it When you click on delete, a confirmation warning modal shows up asking you to confirm You can also star/unstar a task list by clicking on the star icon on the left sidebar or in the options menu Starred task lists show up in a different section at the top of the sidebar to make accessing them easier and quicker Added a dropdown button that shows an additional menu for creating folders and projects (not implemented yet) next to the create task list button Added a pick emoji button for each task list on the sidebar that, of course, still doesn’t work yet Added the new task input field on the task page with a few placeholder buttons and a submit button. This where you’ll be able to add tasks, but nothing works so far Added a message screen that shows up when all the tasks are completed/there are no tasks Added dynamically generated SEO metadata for task list pages to make the site more accessible and responsive Updated schema and types Updated styling and layout
Task creation & management You can now actually add, view, and manage your tasks in MacIdeas! You can add tasks, view details, edit, star, and delete them by clicking on the task item icons When you add a task, a task item gets added to the task list page, which when hovered shows icons/buttons to edit, manage tags, change due date, star, or delete the task. There’s also a circle on the left where you can mark the task as completed (none of these buttons work yet other than star and delete ) Clicking on the task item itself opens an animated panel on the side (similar to a lot of todo apps and the Slack profile panel) with input and textarea fields for editing the task and its description, as well as checkboxes to mark/unmark the task as completed or starred The task item details panel also shows the task’s precise created and updated timestamps, as well as its ID in the backend database (for debugging purposes) You can save the changes in the details panel by clicking on the save button, which updates and revalidates the task automatically. You can also delete the task item by clicking on the delete button and confirming the warning modal You can close the details panel by clicking on the same task item again or by clicking on the close button If a task item is starred, the star icon shows even when you’re not hovering over the task item. You’ll be able to filter and group task items by stars in the future as well Updated the task list page layout to give more space to the main section and make sure everything’s aligned and positioned nicely without any display/styling issues Added new UI components Updated styling Fixed a few styling and UX issues Updated database schema
Browse & complete tasks You can now browse and filter through tasks to view and manage them more easily with the new sorting and filtering options! You can also finally mark tasks as completed once you finish them On the task list page tool bar, there’s a search bar that searched through tasks by their name and description, dropdown menus for sorting (by name, created, updated, due date, etc., some aren’t implemented yet), filtering (by starred, completion status, etc.), and ascending/descending display order to help you find and browse tasks more easily ! There’s also a checkbox that toggles the visibility of completed tasks, since they are hidden by default to avoid cluttering the page You can mark a task as completed by either clicking/checking the circle icon on each task item or selecting the completed checkbox on the task details page Incomplete and completed tasks are each grouped together regardless of sorting order to avoid confusion Completed tasks are striked through and grayed out to help with distinction. You can remark them as incomplete again any time by clicking on the icon again Fixed an annoying container height overflow display layout issue (implementing responsive design on this will be a pain in the butt ) Updated styling and layout I accidentally closed the window while recording the video so I had to rewrite this entire devlog again from memory , Stardance team please make a save devlog button like with Flavortown 🥺
Tags and emojis Added task tags that you can customize and assign to different task items to better categorize and organize them! You’ll be able to group/sort by tags in the future as well, making browsing and managing tasks even more convenient When you click on the tag icon while hovering over a task item, the tag modal appears listing all the tags you created, a search bar for the tasks, as well as options to create new tags and save your selection Each tag on the modal is a checkbox, meaning you can simply check/uncheck the tags to assign them to the task Clicking on the create option displays an input where you can add a new tag that gets added to the revalidated menu Each tag also has an icon that opens a menu of options to rename, select an emoji, pick a color, and delete the tag. The rename option turns the tag into an input that you can edit, the emoji option opens the emoji picker (you can clear an existing emoji as well) so you can choose a custom icon for the tag, the color option opens a color picker where you can edit the tag’s background, and the delete option deletes the tag after confirmation There’s an option on the modal to clear all the currently assigned tags from the task item as well Up to 3 tags are displayed for each task on the task list page, and you can view all the tags a task has in the details panel (where you can open the tag modal and edit the tags too) You can now also choose an emoji for each task list by either clicking on the sidebar icon or the top bar icon! It opens an emoji picker with an option to clear the existing emoji as well Updated schema and types Updated styling and layout Fixed display height issue Fixed legacy dependency deployment issue
Due dates and more random features You can now add due dates and start dates to tasks to better keep track of them and remind yourself when to stop procrastinating and actually get to work ! When you click on the calendar icon on a task, a modal shows up with 2 fields where you can pick the precise date and time for when the task starts/dues. I used the kind of outdated library Flatpickr for this since I was too lazy to build my own calendar time picker thing You can also clear/remove the selected time by clicking on the x icon next to the date field. Save the changes by clicking on the save button You can edit/select the times by clicking on the date fields in the task details panel as well. Start and due dates show up as a small text below the main task on the page so you can easily see when each task is due Added options to sort tasks by due and start dates so you can see which tasks are coming up soon! Also added a separate section in the filter dropdown for filtering by your own tags to better organize and view your different tasks The pen edit/rename option on the task list is now finally implemented! Clicking on it turns the task text into an input field that you can edit, and the new name is saved when you click away from it The tag, calendar, and star icons on the task input field now do something for the new task! Similar to task items, the tag and calendar options both open a modal for you to select the options for the new task, and the star icon marks it as starred. This makes it a lot easier to customize the task before actually adding it to the list Updated schema and types Updated styling and UI components Fixed a legacy dependency (Emoji Mart is unmaintained ) compatibility issue that caused a few previous commits to fail in production build Not gonna lie I’m pretty proud of the UI and layout all the different options and components actually sort of make MacIdeas look like a legit app There seems to be an issue with Firefox screenshots that fails to capture the modal’s background blur for the screenshot so it’s kinda weird
Priority and folders! You can now assign an importance priority flag for each task to better keep track of your most important todos and manage/view them more easily with this feature ! You can change the priority of a task by clicking on one of the 4 options in the priority dropdown that appears when you hover over the task. Each priority has a different color (none-transparent, low-green, medium-yellow, high-red) to help distinct them visually. If a task has a priority, the status is permanently stickied on the task so it’s always visible You can sort and filter tasks by priority as well to automatically group and view your most important tasks You can customize the new task’s priority by changing the new task input field’s priority dropdown menu. You can also edit a task’s priority in the task details panel You can now create custom folders to group and organize your task lists by clicking on the create folder option on the task sidebar ! Clicking on the folder toggles the visibility of its task list content, and hovering over it shows an options icon that opens a menu where you can edit, rename, change the folder icon color, or delete the folder The edit option opens a modal where you can search and select the task lists to add or remove from the folder The rename option turns the folder name into an input that saves on blur, the color option shows a color picker for the icon color, and the delete option deletes the folder and its task lists after confirmation You can also directly create new task lists inside a folder by clicking on the add option on the folder. You can move task lists in/out of folders as well by clicking on the move option, which opens a similar modal where you can search and select which folder to move the task to Drag and drop for moving task lists in/out of folders isn’t implemented yet, because it’s actually quite a challenging thing to do (for me) , but hopefully I’ll have time to try to implement it Updated schema and types Updated UI components and styling Fixed display overflow height styling issues
Dashboard and Subtasks Added a few interactive widgets to the task dashboard showing tasks grouped in different categories so you can browse all your tasks quickly and easily The different task widgets, each with a different icon, are starred, priority, upcoming, starting soon, recent, and tag tasks. The widgets basically act like filters for all your tasks across all task lists so you don’t need to manually dig through them to find what you’re looking for You can now add subtasks to your tasks! Subtasks are basically just very simple tasks without any of the fancy features (since that would be annoying to implement and it’s just pretty impractical) that are just smaller steps broken down from the main task You can add, view, and manage (completing, renaming, or deleting) each task’s subtasks sorted by completion status in the task details panel, and you can see each task’s subtasks directly displayed below the main task You can also mark subtasks as completed by clicking on the circle on the task item, and the text will be striked through and grayed out Added a home/task dashboard link to the left sidebar Updated schema and types Updated styling and layout Updated README with more detailed info and specific features
Dashboard customization and My Day Added settings for customizing your personal tasks page dashboard, where you can select which tasks to show and which task filter sections to display on your main tasks page to make it completely customized You can access the settings modal by clicking on the gear icon on the top right of the tasks page, where you can select the checkboxes that you want to show on the page. You can reset the settings defaults as well by clicking on the reset option and confirming Dashboard tasks now also show their priority and tags All your homepage settings and customization are automatically saved to the account backend so the settings are synced across all your devices Added the “My Day” page that shows all your tasks that either start or due today (in your local timezone, refreshes daily automatically), or you can add custom tasks for the day here without putting it in any task list to help plan out your day better My Day is essentially a special task list and you can do all the stuff you can do with normal tasks and task lists (browsing, sorting, managing, etc.), and it shows up as its own tab on the left sidebar. I thought this would be hard to implement architecturally, but I just had to add a few fields and conditionals to make it work properly Added the tags dashboard section where you can view all the tasks with a certain tag Updated the data fetching logic for the dashboard to be more efficient, optimized, and customized according to the settings Updated schema and constants Updated styling Updated README Fixed a few visual bugs
Notes and custom backgrounds I coded for 5 hours yesterday and made a lot of progress but completely forgot to devlog , so this devlog will be a bit longer (as if my usual devlogs aren’t already long enough) to hopefully keep my storytelling good 🥺 Added the notes tab, which is the second major part of MacIdeas (the other being tasks and projects) that shares a basically identical layout with tasks, so I only had to copy a few components, modify some variables, imports, and database operations, and add new schema models and server actions to make note management work properly, though it still took quite a bit of time Currently only the sidebar is implemented for notes (instead of the actual note taking/editing part), but you can create new notes, rename them, choose their custom emojis, delete them, create and manage folders, and create notes inside folders from there You can also navigate to each note by clicking on it, but the page is blank for now. Notes share folders with tasks, so folders you make in notes also show up in tasks, and vice versa, although the specific tasks/notes in the folder aren’t displayed on the notes/tasks tab to keep organization simple (hopefully I didn’t phrase this too confusingly , maybe I’ll add an option to show both in settings) Also added projects (the third major part of MacIdeas), which are basically labels/folders that you can put tasks, task lists, folders, and notes in to conveniently keep everything related to a big project in one place Right now you can only create projects through the create project button on the sidebar and can’t do anything else with them, since I’ll only start working on projects after I finish notes Added buttons where you can upload a custom background image or select a color theme (not implemented yet) for each individual task list to make customization even better and personalized! When you click on the custom background option, an upload modal appears where you can upload a png/jpg/webp <4MB to be the background! I originally tried using uploadthing since it was the only object storage service I worked with, but I just couldn’t get the event hooks to load or work at all despite copying stuff from my old project and wasting an hour researching , so I decided to settle with Vercel Blobs (because it’s already hosted on Vercel) and it’s actually so much faster and easier to set up/integrate Some of the components are opaque, so they look kind of weird with a custom background, so I’ll be fixing that soon, but for the most part custom backgrounds actually look decent somehow Task lists without a custom background have a black overlay shadow that’s out of place, so that has to fixed too Also added a bunch of random small quality of life features and adjustments that I don’t remember without looking at my commits Updated schema and types Updated styling
Note and project management Added more note management features for editing, deleting, starring, and moving notes, as well as a dashboard for the notes page (similar to the one for tasks) You can now move notes in/out of different folders by selecting the move option and choosing the folder in the modal popup menu. You can also edit which notes are in a folder by clicking on its edit option, where you can check all the notes you want in a folder Added a top tool bar to each note page (similar to the tool bar for task lists) with the note’s emoji (clicking it opens the emoji menu where you can choose or clear the icon), name (clicking on it renamed the note), description (clicking on it also makes it editable), and current folder information displayed The tool bar also has options to upload a custom background image with an upload modal (similar to task lists), choose a custom theme (not implemented yet), star/unstar, or delete after confirming Added a sidebar for the projects page where you can create, manage, view, add icon, rename, star/unstar, and delete your projects (basically the same as the notes and tasks sidebar) Since many of the features are basically identical or very similar to tasks/task lists, I just used the existing components and copied and modified some stuff, so all these features were pretty easy and quick to implement Added recent, starred, and organized by tag sections to the notes dashboard so you can view and manage your notes more easily. You can also customize the dashboard by selecting the sections in the settings panel Updated schema and types Updated styling and layout Fixed background shadow overlay and a few other display/styling issues
Project browser Added a project browser/file explorer to the project dashboard where you can search, view, and open projects and folders to browse their content ! I decided to build this file explorer instead of just a simple dashboard because I got bored and wanted to make something different, and it would make more sense to do this for projects since they are essentially just folders This file explorer is pretty similar to Google Drive and other cloud storage services, you can double click a project or folder to change directory and view its content (tasks, task lists, notes, other folders), and go back/navigate to other levels with navigation breadcrumbs I thought this would be difficult to implement and would need some kind of breadcrumb library and it turned out to be pretty simple Only projects are styled and can be opened right now, but folders and other stuff will be added in the next update! Added a menu option for adding task/note folders to projects. It opens a modal where you can view and select all the projects you’re adding the folder to, and it’ll show up in the project explorer Updated styling and content
Project page and contents Added a dedicated page for each project that is its own file browser where you can open/interact with the contents, view their information and metadata, and search, filter, and sort through them so you can better manage and view your projects Added an option on the project page that opens a modal displaying all your folders, task lists, tasks, and notes grouped into 4 different tabs. Each item is a checkbox so you can select exactly which items to add to or remove from the project You can also search through each tab’s results and see their names and icons to make finding the right item quick and easy This seemed like a simple feature to implement but getting to cooperate was a nightmare since each item has its own data type, so organizing the data structure for both the frontend and backend required a lot of annoying unions and conditionals There is now a top bar in the project browser with the name, type, modified, and created labels which you can click on to sort the contents accordingly Each item also shows its type and modified & created times, as well as an icon where you can change the item’s emoji directly, making browsing and managing your stuff more convenient You can also edit the project’s name and description directly by clicking on the page title and text Updated styling and layout I procrastinated on this devlog for 2 days and got no work done, so I think this might be a sign for me to take a break from Stardance for a few days since I also need to work on hosting 8-Bit Jam (awesome game jam, if you live near nova plz go register ) and other stuff, so there won’t be new devlogs in a while
Light mode toggle The mode option in the nav user menu now toggles the site’s entire appearance between dark and light mode to improve its customizability and accessibility Because every component has a default color transition, switching between the 2 modes has a smooth UI transition instead of flashing to the other color instantly I had to set up the theme provider and manually add the light mode Tailwind classes and the dark mode prefix for all the colors in every page and component, as well as accounting for all most of the display color edge cases, so this took quite a long time but the result was worth it, both modes look pretty consistent and visually appealing I am finally back to developing MacIdeas after taking a one month break, so I spent some time familiarizing myself with the codebase again. Hopefully this time I’ll be able to finish and ship it soon! Updated styling and layout Added and updated some dependencies
Rich text editing for notes! Added a complete, feature-rich, and easy to use rich text editor for creating and editing your notes! This means you can now actually take notes with features like text formatting, links, headings, lists, inline components, and a lot of other features you would expect from tools like Google Docs There is a top tool bar with a ton of options, buttons, and dropdowns organized into different functional sections (I definitely did not just copy GDocs ) to format/edit/modify your current content selection easily Most of the features support keyboard shortcuts (because of Tiptap), which you can see by hovering over the option and reading its tooltip I tried making my own web based rich text editor from scratch before, and it turned out to be a nightmare of dom manipulation and other headaches, so this time I decided to just use the library Tiptap, which itself is based on the library ProseMirror, to handle this pain in the butt Since Tiptap is completely headless, I still spent a lot of time going through its docs, installing useful extensions, learning their commands, and building, testing, and tweaking all the features to make everything work smoothly I don’t know why I’ve been neglecting actually adding notes for so long (before each note was just a blank page saying “Untitled note” that you couldn’t even edit ), but this actually turned out to be super fun to implement and the result was very rewarding Note saving doesn’t actually work yet (despite the fake “Note saved” autosave message ) since there are still some things about the editor to fix, but hopefully that’ll be implemented soon and MacIdeas will be almost ready to ship! The text editor also works with light mode, and I also updated some styling to improve the UI
Last devlog: note features and final touches! MacIdeas is finally finished and ready to ship! In this last massive devlog, I added a few new quality of life features, did a ton of general/styling/auth bug fixes, and polished the entire project ! Added note content persistence, meaning you can actually save each note’s content to your account data, including its text, formatting, and everything. Autosave automatically does this every 30 seconds, but you can also manually save with ctrl+s or by pressing the save button Added a few new editor features from Tiptap for typography and general formatting to make note taking more powerful and complete You can now select custom background colors (along with custom backdrop images) to customize the appearance of each task list and note page ! The nav search had been there doing nothing ever since the first devlog , so I finally added a powerful search bar to the nav bar that uses a new API endpoint to search through all the information in all your task lists, tasks, notes, projects, and folders and displays the results as a list of links for convenient browsing and navigation! Added section descriptions and icons for the major features on the homepage Updated styling, content, code, and layout Updated the README with a demo screenshot and updated info about features Fixed a lot of bugs related to general usage, empty user data, styling issues with modals, auth redirect, and many other things I don’t want to remember to improve the overall user experience I took a one week break in this last stretch, so there was probably other stuff I did that I forgot, so hopefully my storytelling isn’t that bad
Ships:
MacIdeas is a fullstack online platform for managing, organizing, and keeping track of your work, including tasks, notes, and projects! Now, before you think this is just another generic boring todo list app and give me a 1 star in originality…, well, it kind of is a todo app, but with a ton of many different features, customization, and settings, as well as notes with a complete, functional rich text editor, folders for convenient organization, and projects for organizing your different tasks, notes, folders, and everything else into manageable groups that you can easily browse through. You can edit and assign tasks priorities, due/start dates, tags, subtasks, projects, folders, links, completion, star them, and view all the info from the details panel. There are also features like search, sort, filter, tags, views, star, emojis, and other options that make browsing, navigating, and finding items a lot easier and more efficient. To make the website accessible to everyone, MacIdeas has smooth transitions and animations, fully supports both dark and light modes (and your own background images or colors), as well as responsive design for (nearly) all screen sizes, and complete SEO metadata for each page. All you need to do is to sign in with MacWeb, the central platform for my projects’ auth and account info (since MacIdeas is one of its many apps), and you’ll be redirected back and have access to try out all those features! It has everything you would expect from a real task manager and text editor, so hopefully you’ll like my project :)...
|
1793335754.3358278
|
1793422154.3358278
|
|
51217
|
8-Bit Jam by @tonymac129 | Stardance
|
tonymac129
|
1
|
17.0
|
136
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-26T02:46:47Z", "hours": 17.0, "multiplier": 7.94, "payout": 136, "blessing": "neutral", "text": "I finally finished building the 8-Bit Jam website for the game development hackathon that I hosted with my friends on 8/22 in Virginia!!! The event was a ton of fun and I learned a lot of stuff from this entire experience. This website is basically the central platform for the entire event, including pages with general information about the hackathon like the homepage, rules, about, schedule, sponsors, and winners pages, the auth/account system for the registrants and judges, the project management and submission site, and the judging portal and results pages for both our in-person and remote judges. I really enjoyed building this project because I literally dedicated maybe 100 hours of my summer break and my blood and sweat, so it was an amazing feeling to see everything come to life myself. I was super busy these past few days especially when school was also starting, so I only had the time to make 2 devlogs documenting this project :(", "repo": "https://github.com/8bitjam/site", "demo": "https://8bitjam.win"}]...
|
[{"post_id": 54875, "ts": "202 [{"post_id": 54875, "ts": "2026-08-26T02:39:35Z", "hours": 7.1208, "text": "8-Bit Jam is over!!! 8-Bit Jam, the game development hackathon I hosted last Saturday, 8/22, in Great Falls, Virginia, is finally over after more than 3 months of hardwork, emailing, worrying, calling, writing, marketing, building, and doing a hella ton of other stuff (I already said this in my last devlog so I won’t be repeat too much) Most of this massive 7 hour devlog’s time was spent a few days before the actual event when I was rushing and working on the site for 2 hours per day (on top of emailing sponsors, judges, participants, and preparing for the event) getting the project submission, judging, algorithmic weighing, auth, and other workflows ready for production Finished the project submission form by adding a new field for technology used in the project and tooltips explaining what to put in each field (and some people were still confused during the event ) Judges can now actually submit their ratings for each judging criterion and submit their constructive feedback (at least 30 words) for the project on the judging page Added an admin result summary page that only my account can access which displays a table with all the projects’ scores for each category, as well as their overall scores. The scores can be sorted by clicking on each table headers (project names are censored in the devlog for privacy reasons because the event took place and the scores are all real from our 100+ ratings from 12 judges) Took quite a bit of time coming up with and implementing a fair and balanced algorithm to calculate each project’s overall scores for the categories since in-person and remote judges are weighed differently. I felt so smart and stupid at the same time for making the final weird algorithm Added the winners page after the hackathon showing pictures of winners with their certificate, award, and team name, as well as photo highlights from the event Added the logo redesign submission page when the event was happening since I still had some free time in the entire 10 hours, where you can upload your 8-Bit Jam logo ideas that show up on my admin summary dashboard page for the sidequest A ton of stuff happened, this was definitely the most fun I’ve experienced in one day in a very long time, and I’m really excited to finally write a blog post about it to organize my wonderful memories of 8-Bit Jam 🥹 Updated project submission form styling and content Updated a lot of outdated info across the website both during and after the event Fixed some project form edge case bugs related to AI usage entries and saving projects Fixed many other visual and backend bugs to improve overall UI and UX Updated README"}, {"post_id": 50448, "ts": "2026-08-19T16:42:57Z", "hours": 9.9589, "text": "Preparing for the hackathon 8-Bit Jam , the game-themed high school hackathon, is finally happening in less than 3 days in Virginia !!! I’ve been working on hosting this event, including finding venues, getting sponsors, marketing, contacting judges, improving the website, managing registrations, and doing a hella ton of work along with my team (genuinely took up all my free time this entire summer ) I already made the basic website with event information listed and a simple account system a while ago near the end of Flavortown, but this time I’m finishing it for the event since it will be used as the project management and judging platform for our participants and judges I didn’t plan on devlogging the website on Stardance because I thought it would only take a few hours, but it’s turning out to be quite complicated, so might as well just document everything on here. I’ve been working on this periodically over the past few months and somehow accumulated almost 10 hours, so this devlog will be pretty massive Participants can now go to their dashboard and start managing their project information by clicking on the manage project options On the project form, they can fill in their project’s name, description, gameplay instructions, demo/repo links, team name, team members, log their AI debug usage (because generative AI is prohibited 🥹 , only debugging with AI is allowed), and upload a banner for judges to know everything about their project Judge accounts can see all submitted projects from the dashboard, and clicking on one brings them to the rating page where they can get a comprehensive overview of the project, as well as put their ratings for each criterion and provide constructive feedback in the rubric section (I definitely didn’t take inspo from the Stardance voting page ) I still need to clean up the database and put dynamic time constraints to make sure people don’t cheat the system, submit early/late, or do something else, so figuring out all the edge cases would be a pain Updated the account auth system so signing in/signing up with either credentials or OAuth actually works. Added judge accounts as well that give them access to the project rating dashboard and individual pages Updated the website with a lot of new information including our prizes, team members, judges, sponsors, detailed schedule, rules, and a bunch of links for our registration and volunteering forms Updated backend database schema and types Updated styling and page layout Fixed a lot of bugs/outdated info here and there so it’s slightly presentable to the professional audience I probably did a lot more on the website that I don’t remember, because managing a hackathon website is genuinely very tedious"}]...
|
Title: 8-Bit Jam by @tonymac129 | Stardance
Devlo Title: 8-Bit Jam by @tonymac129 | Stardance
Devlogs:
Preparing for the hackathon 8-Bit Jam , the game-themed high school hackathon, is finally happening in less than 3 days in Virginia !!! I’ve been working on hosting this event, including finding venues, getting sponsors, marketing, contacting judges, improving the website, managing registrations, and doing a hella ton of work along with my team (genuinely took up all my free time this entire summer ) I already made the basic website with event information listed and a simple account system a while ago near the end of Flavortown, but this time I’m finishing it for the event since it will be used as the project management and judging platform for our participants and judges I didn’t plan on devlogging the website on Stardance because I thought it would only take a few hours, but it’s turning out to be quite complicated, so might as well just document everything on here. I’ve been working on this periodically over the past few months and somehow accumulated almost 10 hours, so this devlog will be pretty massive Participants can now go to their dashboard and start managing their project information by clicking on the manage project options On the project form, they can fill in their project’s name, description, gameplay instructions, demo/repo links, team name, team members, log their AI debug usage (because generative AI is prohibited 🥹 , only debugging with AI is allowed), and upload a banner for judges to know everything about their project Judge accounts can see all submitted projects from the dashboard, and clicking on one brings them to the rating page where they can get a comprehensive overview of the project, as well as put their ratings for each criterion and provide constructive feedback in the rubric section (I definitely didn’t take inspo from the Stardance voting page ) I still need to clean up the database and put dynamic time constraints to make sure people don’t cheat the system, submit early/late, or do something else, so figuring out all the edge cases would be a pain Updated the account auth system so signing in/signing up with either credentials or OAuth actually works. Added judge accounts as well that give them access to the project rating dashboard and individual pages Updated the website with a lot of new information including our prizes, team members, judges, sponsors, detailed schedule, rules, and a bunch of links for our registration and volunteering forms Updated backend database schema and types Updated styling and page layout Fixed a lot of bugs/outdated info here and there so it’s slightly presentable to the professional audience I probably did a lot more on the website that I don’t remember, because managing a hackathon website is genuinely very tedious
8-Bit Jam is over!!! 8-Bit Jam, the game development hackathon I hosted last Saturday, 8/22, in Great Falls, Virginia, is finally over after more than 3 months of hardwork, emailing, worrying, calling, writing, marketing, building, and doing a hella ton of other stuff (I already said this in my last devlog so I won’t be repeat too much) Most of this massive 7 hour devlog’s time was spent a few days before the actual event when I was rushing and working on the site for 2 hours per day (on top of emailing sponsors, judges, participants, and preparing for the event) getting the project submission, judging, algorithmic weighing, auth, and other workflows ready for production Finished the project submission form by adding a new field for technology used in the project and tooltips explaining what to put in each field (and some people were still confused during the event ) Judges can now actually submit their ratings for each judging criterion and submit their constructive feedback (at least 30 words) for the project on the judging page Added an admin result summary page that only my account can access which displays a table with all the projects’ scores for each category, as well as their overall scores. The scores can be sorted by clicking on each table headers (project names are censored in the devlog for privacy reasons because the event took place and the scores are all real from our 100+ ratings from 12 judges) Took quite a bit of time coming up with and implementing a fair and balanced algorithm to calculate each project’s overall scores for the categories since in-person and remote judges are weighed differently. I felt so smart and stupid at the same time for making the final weird algorithm Added the winners page after the hackathon showing pictures of winners with their certificate, award, and team name, as well as photo highlights from the event Added the logo redesign submission page when the event was happening since I still had some free time in the entire 10 hours, where you can upload your 8-Bit Jam logo ideas that show up on my admin summary dashboard page for the sidequest A ton of stuff happened, this was definitely the most fun I’ve experienced in one day in a very long time, and I’m really excited to finally write a blog post about it to organize my wonderful memories of 8-Bit Jam 🥹 Updated project submission form styling and content Updated a lot of outdated info across the website both during and after the event Fixed some project form edge case bugs related to AI usage entries and saving projects Fixed many other visual and backend bugs to improve overall UI and UX Updated README
Ships:
I finally finished building the 8-Bit Jam website for the game development hackathon that I hosted with my friends on 8/22 in Virginia!!! The event was a ton of fun and I learned a lot of stuff from this entire experience. This website is basically the central platform for the entire event, including pages with general information about the hackathon like the homepage, rules, about, schedule, sponsors, and winners pages, the auth/account system for the registrants and judges, the project management and submission site, and the judging portal and results pages for both our in-person and remote judges. I really enjoyed building this project because I literally dedicated maybe 100 hours of my summer break and my blood and sweat, so it was an amazing feeling to see everything come to life myself. I was super busy these past few days especially when school was also starting, so I only had the time to make 2 devlogs documenting this project :(...
|
1793487439.5252285
|
1793573839.5252285
|
|
55645
|
Personal Blog by @tonymac129 | Stardance
|
tonymac129
|
0
|
1.88
|
0
|
[]
|
[{"post_id": 57048, "ts": "202 [{"post_id": 57048, "ts": "2026-08-29T03:47:40Z", "hours": 1.8783, "text": "Personal blog site mission! I’m working on making a fullstack personal blog site mission for Stardance right now, so I decided to submit the demo blog I’m making to test my guide as a project as well, because why not For the mission, you basically just have to follow along the hopefully not too long or complicated guide and set up a Next.js + MongoDB/Mongoose project for a simple blog site and customize its appearance, so it should be pretty fun Since customization and creativity are the two most important parts of this mission, I decided to make the demo site kinda boring to prevent people from blindly copying and not building their own thing In this update, I just set up the project and basic dependencies, made a few pages, added a post submission form, created the basic UI layout, and set up the backend so everything works You can give the new post a title and add paragraphs to it, and you’ll get redirected to the post page after submitting. Because most of the boilerplate code is already in the guide, making everything work was pretty quick and simple Hopefully this will be an interesting mission, and I’m pretty excited to see what people build with the guide!"}]...
|
Title: Personal Blog by @tonymac129 | Stardance
D Title: Personal Blog by @tonymac129 | Stardance
Devlogs:
Personal blog site mission! I’m working on making a fullstack personal blog site mission for Stardance right now, so I decided to submit the demo blog I’m making to test my guide as a project as well, because why not For the mission, you basically just have to follow along the hopefully not too long or complicated guide and set up a Next.js + MongoDB/Mongoose project for a simple blog site and customize its appearance, so it should be pretty fun Since customization and creativity are the two most important parts of this mission, I decided to make the demo site kinda boring to prevent people from blindly copying and not building their own thing In this update, I just set up the project and basic dependencies, made a few pages, added a post submission form, created the basic UI layout, and set up the backend so everything works You can give the new post a title and add paragraphs to it, and you’ll get redirected to the post page after submitting. Because most of the boilerplate code is already in the guide, making everything work was pretty quick and simple Hopefully this will be an interesting mission, and I’m pretty excited to see what people build with the guide!...
|
1793336098.0476036
|
1793940898.0476036
|
|
70411
|
TJHSST Q Lab Website by @tonymac129 | Stardance
|
tonymac129
|
0
|
7.23
|
0
|
[]
|
[{"post_id": 80864, "ts": "202 [{"post_id": 80864, "ts": "2026-10-19T02:45:40Z", "hours": 7.2286, "text": "Q Lab Website Updates As a sysadmin for my school, I’m responsible for making, updating, and maintaining some of the school’s websites, including the Q Lab website, which has projects, information, and other stuff about our quantum physics senior research lab! Some alumni of the lab already made most of the website, so in this update I just focused on adding some quality of life features and applying a redesign Added new darker colors and some UI improvements, as well as new icons, logos, layouts, and content throughout the platform Added project keywords and search to better explore and browse through different projects Added options to delete and edit project assets Fixed a few bugs related to the UI and updated the admin panel Note that some of the admin/management features require our internal auth, but most of the stuff is publicly viewable Since the entire website was written in Django (one of my least favorite frameworks) like 6 years ago, I spent a ton of time setting up a local dev env because of compatibility issues and refamiliarizing myself with the framework again, so I thought why not also put it on stardance now that I’ve accumulated quite some hours"}]...
|
Title: TJHSST Q Lab Website by @tonymac129 | Stard Title: TJHSST Q Lab Website by @tonymac129 | Stardance
Devlogs:
Q Lab Website Updates As a sysadmin for my school, I’m responsible for making, updating, and maintaining some of the school’s websites, including the Q Lab website, which has projects, information, and other stuff about our quantum physics senior research lab! Some alumni of the lab already made most of the website, so in this update I just focused on adding some quality of life features and applying a redesign Added new darker colors and some UI improvements, as well as new icons, logos, layouts, and content throughout the platform Added project keywords and search to better explore and browse through different projects Added options to delete and edit project assets Fixed a few bugs related to the UI and updated the admin panel Note that some of the admin/management features require our internal auth, but most of the stuff is publicly viewable Since the entire website was written in Django (one of my least favorite frameworks) like 6 years ago, I spent a ton of time setting up a local dev env because of compatibility issues and refamiliarizing myself with the framework again, so I thought why not also put it on stardance now that I’ve accumulated quite some hours...
|
1793008419.9323153
|
1793613219.9323153
|
|
27510
|
SixthSense by @tonykirpal | Stardance
|
tonykirpal
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: SixthSense by @tonykirpal | Stardance
|
1793465728.1132424
|
1794070528.1132424
|
|
7162
|
Untitled project by @tony323 | Stardance
|
tony323
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @tony323 | Stardance
|
1793231774.7173893
|
1793836574.7173893
|
|
43044
|
Clavistry by @tonton | Stardance
|
tonton
|
0
|
7.96
|
0
|
[]
|
[{"post_id": 45117, "ts": "202 [{"post_id": 45117, "ts": "2026-08-11T12:15:29Z", "hours": 4.8047, "text": "Devlog #1: ughhghgjhgjhhh Sumary: I have added (extremely basic) MIDI input, tidied up and planned ahead some more, and spent hours debugging why my code failed to parse a file which turned out to be corrupted :) The day after writing my first devlog , I started sketching out a more comprehensive relationship between the MusicXML parser and OSMD renderer. This led me to realize that my previous approach for the entire scoring engine is fundamentally incompatible with like.. playing the piano as a human being. I have since modified it and I’m very confident what I’m currently making will work. Also, I wanted to start working with real scores, so I got a few MusicXMLs with permissive licenses off MuseScore (massive thanks to those who write them!) and tried importing them… it failed. I must have spent a solid 3 hours trying to debug my previously-functional code before even considering the file might be corrupted. Turns out, I opened it with VSC at some point (massive thanks to Windows for breaking my line endings!). You can see the new-successfully-parsed file in the screenshot attached :P Last week has been packed and I couldn’t work much, however I have some good news! I’ll be away from home for a while and won’t have my MIDI keyboard, but a friend agreed to borrow me his! They’re much better at playing than me so they also agreed to play-test and provide feedback once I have a demo ready :) See you in the next devlog!"}, {"post_id": 40545, "ts": "2026-08-04T05:21:47Z", "hours": 3.1553, "text": "Devlog #0: Let’s begin! Summary: I’ve researched and planned ahead, created the project and GH repo, and started work on the core engine (OSMD). This is an introductory devlog which aims to provide some context for what’s about to follow, as well as document the first steps of creating the project. This one in particular might be rather long. First, you should know a few things about me: I love music and difficult video games, so naturally I love rhythm games. I love playing the piano (despite sucking at it) and really want to learn how to sightread. I love programming and game development (among many other things not worth listing here). These 3 insights should explain how the idea of making a rhythm game about sight-reading sheet music with a MIDI keyboard popped into my head a few years ago. I’ve participated in Hackclub’s “Summer of Making” event last year, though I didn’t ship anything unfortuantely. I figured the rhythm game idea would be nice for this year’s participation (flexible scope, good mix of familiarity and unfamiliarity, fun) so here I am :) So far around 15 hours were spent planning and RTFM’ing: I was initially consdering building a standalone program in Godot, but settled on the web because of the existence of several libraries/dependencies that do most of the heavy-lifting for me (and accessibility). My stack is Vite + Vanilla TS due to familiarity. I picked the name “Clavistry” (Clavier + Artistry) among many much sillier candidates, such as: Prima Vista, Etudio, Ledgerdemain, (No) Accidentals, Sightreader, Claviator . The project will be split into the following components: OSMD engine (MusicXML parser, render, moving cursor) Web MIDI API (interface with MIDI keyboard) Scoring engine (compare OSMD expected input and MIDI user input) Feedback/UI .mscz converter (Clavistry uses MusicXML, this allows importing from MuseScore) They’re roughly placed in order of importance, and now I’ve started working on the OSMD engine itself. More on that in the next devlog :) P.S: I’m new to actively documenting my work like this, and I plan on keeping subsequent devlogs shorter. Thanks for taking the time to read through this!"}]...
|
Title: Clavistry by @tonton | Stardance
Devlogs:
Title: Clavistry by @tonton | Stardance
Devlogs:
Devlog #0: Let’s begin! Summary: I’ve researched and planned ahead, created the project and GH repo, and started work on the core engine (OSMD). This is an introductory devlog which aims to provide some context for what’s about to follow, as well as document the first steps of creating the project. This one in particular might be rather long. First, you should know a few things about me: I love music and difficult video games, so naturally I love rhythm games. I love playing the piano (despite sucking at it) and really want to learn how to sightread. I love programming and game development (among many other things not worth listing here). These 3 insights should explain how the idea of making a rhythm game about sight-reading sheet music with a MIDI keyboard popped into my head a few years ago. I’ve participated in Hackclub’s “Summer of Making” event last year, though I didn’t ship anything unfortuantely. I figured the rhythm game idea would be nice for this year’s participation (flexible scope, good mix of familiarity and unfamiliarity, fun) so here I am :) So far around 15 hours were spent planning and RTFM’ing: I was initially consdering building a standalone program in Godot, but settled on the web because of the existence of several libraries/dependencies that do most of the heavy-lifting for me (and accessibility). My stack is Vite + Vanilla TS due to familiarity. I picked the name “Clavistry” (Clavier + Artistry) among many much sillier candidates, such as: Prima Vista, Etudio, Ledgerdemain, (No) Accidentals, Sightreader, Claviator . The project will be split into the following components: OSMD engine (MusicXML parser, render, moving cursor) Web MIDI API (interface with MIDI keyboard) Scoring engine (compare OSMD expected input and MIDI user input) Feedback/UI .mscz converter (Clavistry uses MusicXML, this allows importing from MuseScore) They’re roughly placed in order of importance, and now I’ve started working on the OSMD engine itself. More on that in the next devlog :) P.S: I’m new to actively documenting my work like this, and I plan on keeping subsequent devlogs shorter. Thanks for taking the time to read through this!
Devlog #1: ughhghgjhgjhhh Sumary: I have added (extremely basic) MIDI input, tidied up and planned ahead some more, and spent hours debugging why my code failed to parse a file which turned out to be corrupted :) The day after writing my first devlog , I started sketching out a more comprehensive relationship between the MusicXML parser and OSMD renderer. This led me to realize that my previous approach for the entire scoring engine is fundamentally incompatible with like.. playing the piano as a human being. I have since modified it and I’m very confident what I’m currently making will work. Also, I wanted to start working with real scores, so I got a few MusicXMLs with permissive licenses off MuseScore (massive thanks to those who write them!) and tried importing them… it failed. I must have spent a solid 3 hours trying to debug my previously-functional code before even considering the file might be corrupted. Turns out, I opened it with VSC at some point (massive thanks to Windows for breaking my line endings!). You can see the new-successfully-parsed file in the screenshot attached :P Last week has been packed and I couldn’t work much, however I have some good news! I’ll be away from home for a while and won’t have my MIDI keyboard, but a friend agreed to borrow me his! They’re much better at playing than me so they also agreed to play-test and provide feedback once I have a demo ready :) See you in the next devlog!...
|
1793199213.3248692
|
1793804013.3248692
|
|
66143
|
My first slack bot! by @tonisosa069 | Stardance
|
tonisosa069
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @tonisosa069 | Stard Title: My first slack bot! by @tonisosa069 | Stardance...
|
1793094748.5470202
|
1793699548.5470202
|
|
67556
|
WarioWare Game by @toniii | Stardance
|
toniii
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: WarioWare Game by @toniii | Stardance
|
1793112599.7322204
|
1793717399.7322204
|
|
59502
|
My own site! by @tonightyjai | Stardance
|
tonightyjai
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @tonightyjai | Stardance
|
1793563013.7104106
|
1794167813.7104106
|
|
4839
|
My first slack bot! by @tonicforest | Stardance
|
tonicforest
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-02T17:24:42Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a 24/7 slack bot which responds to slash commands. Overall, there were no significant issues faced by me and deploying it through Nest was a very fun process", "repo": "https://github.com/Namaami/Tonic-Slack-Bot", "demo": "https://youtube.com/shorts/K4zaOL7ct4w?si=MwY-6wcEI4PT7wN7"}]...
|
[{"post_id": 882, "ts": "2026- [{"post_id": 882, "ts": "2026-06-02T16:35:38Z", "hours": 0.5411, "text": "Shipped my Stardance project: Tonic 🚀 → AI-powered Slack bot → Slash command interface → Runs 24/7 on Nest → Built with Node.js + Slack APIs Probably spent more time debugging auth tokens than writing features 😭 Worth it."}]...
|
Title: My first slack bot! by @tonicforest | Stard Title: My first slack bot! by @tonicforest | Stardance
Devlogs:
Shipped my Stardance project: Tonic 🚀 → AI-powered Slack bot → Slash command interface → Runs 24/7 on Nest → Built with Node.js + Slack APIs Probably spent more time debugging auth tokens than writing features 😭 Worth it.
Ships:
I made a 24/7 slack bot which responds to slash commands. Overall, there were no significant issues faced by me and deploying it through Nest was a very fun process...
|
1793454931.4828732
|
1793541331.4828732
|
|
5256
|
My awesome macropad! by @tonicforest | Stardance
|
tonicforest
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @tonicforest | Star Title: My awesome macropad! by @tonicforest | Stardance...
|
1793382559.50121
|
1793987359.50121
|
|
6113
|
Tonic Snake Game by @tonicforest | Stardance
|
tonicforest
|
0
|
1.94
|
0
|
[]
|
[{"post_id": 83531, "ts": "202 [{"post_id": 83531, "ts": "2026-10-28T03:33:48Z", "hours": 1.9353, "text": "I made this snake game in the Neon theme with grid interface and a red glowing dot as the food. We can either use the arrow keys or the WSAD keys for navigation. It calculates your score in real-time and also saves the high score locally so the progress isn’t lost even if u quit the file and reopen it."}]...
|
Title: Tonic Snake Game by @tonicforest | Stardanc Title: Tonic Snake Game by @tonicforest | Stardance
Devlogs:
I made this snake game in the Neon theme with grid interface and a red glowing dot as the food. We can either use the arrow keys or the WSAD keys for navigation. It calculates your score in real-time and also saves the high score locally so the progress isn’t lost even if u quit the file and reopen it....
|
1793342921.6505337
|
1793947721.6505337
|
|
71691
|
My Portfolio by @tonicforest | Stardance
|
tonicforest
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My Portfolio by @tonicforest | Stardance
|
1793159236.8611798
|
1793764036.8611798
|
|
44059
|
My own site! by @toniablessed07 | Stardance
|
toniablessed07
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @toniablessed07 | Stardance
|
1793253239.6412175
|
1793858039.6412175
|
|
7090
|
Cyberdeck by @toni21life | Stardance
|
toni21life
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Cyberdeck by @toni21life | Stardance
|
1793285277.5417695
|
1793890077.5417695
|
|
5410
|
Untitled project by @tongyu_slacktest | Stardance
|
tongyu_slacktest
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @tongyu_slacktest | Sta Title: Untitled project by @tongyu_slacktest | Stardance...
|
1793509021.949388
|
1794113821.949388
|
|
412
|
Stardance by @tongyu | Stardance
|
tongyu
|
0
|
51.26
|
0
|
[]
|
[{"post_id": 15185, "ts": "202 [{"post_id": 15185, "ts": "2026-06-24T17:55:52Z", "hours": 9.8014, "text": "i made streaks work :D this should update now!! also soon u will get profile badges n stuff"}, {"post_id": 10824, "ts": "2026-06-17T19:25:11Z", "hours": 6.8578, "text": "you can now tag people in devlogs and in comments (and also you can add slack emojis. ) @tongyu they’ll appear in your notifications bar. comment something and i’ll reply to you so you can try it out :p"}, {"post_id": 9371, "ts": "2026-06-15T18:27:09Z", "hours": 14.9747, "text": "i added gambling hooray! stardance rng day 1 🎲 7,538 · ranked #16 so far https://stardance.hackclub.com/rng"}, {"post_id": 2758, "ts": "2026-06-05T15:18:39Z", "hours": 4.3986, "text": "yippee win a free gpu :D"}, {"post_id": 2228, "ts": "2026-06-04T16:45:21Z", "hours": 15.2267, "text": "comment system is better now :)))) and you can ctrl+enter or cmd+enter to post comments or devlogs. yay!"}]...
|
Title: Stardance by @tongyu | Stardance
Devlogs:
Title: Stardance by @tongyu | Stardance
Devlogs:
comment system is better now :)))) and you can ctrl+enter or cmd+enter to post comments or devlogs. yay!
yippee win a free gpu :D
i added gambling hooray! stardance rng day 1 🎲 7,538 · ranked #16 so far https://stardance.hackclub.com/rng
you can now tag people in devlogs and in comments (and also you can add slack emojis. ) @tongyu they’ll appear in your notifications bar. comment something and i’ll reply to you so you can try it out :p
i made streaks work :D this should update now!! also soon u will get profile badges n stuff...
|
1793296248.3120244
|
1793901048.3120244
|
|
10415
|
spinning game by @tongyu | Stardance
|
tongyu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: spinning game by @tongyu | Stardance
|
1792939968.763009
|
1793803968.763009
|
|
26385
|
Untitled by @tongyu | Stardance
|
tongyu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @tongyu | Stardance
|
1792932578.2163763
|
1793796578.2163763
|
|
26386
|
My awesome macropad! by @tongyu | Stardance
|
tongyu
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @tongyu | Stardance
|
1792921921.173725
|
1793785921.173725
|
|
43276
|
untitled rhythm roguelike by @tongyu | Stardance
|
tongyu
|
0
|
0.55
|
0
|
[]
|
[{"post_id": 39825, "ts": "202 [{"post_id": 39825, "ts": "2026-08-03T02:26:47Z", "hours": 0.5531, "text": "i’m making a roguelike rhythm game where you have to use rhythm to fight enemies!! this is just the start. for the base mechanic i’m kind of just ripping off rhythm heaven’s beatspell game lol, more interesting stuff coming soon hopefully :p"}]...
|
Title: untitled rhythm roguelike by @tongyu | Star Title: untitled rhythm roguelike by @tongyu | Stardance
Devlogs:
i’m making a roguelike rhythm game where you have to use rhythm to fight enemies!! this is just the start. for the base mechanic i’m kind of just ripping off rhythm heaven’s beatspell game lol, more interesting stuff coming soon hopefully :p...
|
1793213357.6731548
|
1793818157.6731548
|
|
56556
|
Breadboard cpu by @tomylopezd | Stardance
|
tomylopezd
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Breadboard cpu by @tomylopezd | Stardance
|
1793389811.5975096
|
1793994611.5975096
|
|
23418
|
My first slack bot! by @tomy_blasbichler | Stardan My first slack bot! by @tomy_blasbichler | Stardance...
|
tomy_blasbichler
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @tomy_blasbichler | Title: My first slack bot! by @tomy_blasbichler | Stardance...
|
1793404402.118832
|
1794009202.118832
|
|
36997
|
Gamebuddie by @tomy_blasbichler | Stardance
|
tomy_blasbichler
|
0
|
0.56
|
0
|
[]
|
[{"post_id": 30870, "ts": "202 [{"post_id": 30870, "ts": "2026-07-18T20:27:17Z", "hours": 0.5553, "text": "Hi Guys, its fr a perfect feeling! I had to warm up a little bit againg into coding but i started and already cant wait to make it better and better. Thank god my parents arent home cause then i couldnt work so late on this :) If you like my project like it (i hope you can like projects) But yeah that was it. I hope it will become a new Website to make Online or Real Life Friends to play with. Bcs walking with a friend in the dark is better than walking alone in the Sunlight."}]...
|
Title: Gamebuddie by @tomy_blasbichler | Stardance Title: Gamebuddie by @tomy_blasbichler | Stardance
Devlogs:
Hi Guys, its fr a perfect feeling! I had to warm up a little bit againg into coding but i started and already cant wait to make it better and better. Thank god my parents arent home cause then i couldnt work so late on this :) If you like my project like it (i hope you can like projects) But yeah that was it. I hope it will become a new Website to make Online or Real Life Friends to play with. Bcs walking with a friend in the dark is better than walking alone in the Sunlight....
|
1793454499.5548651
|
1794059299.5548651
|
|
37235
|
Schoolbook Chapter 42 by @tomy_blasbichler | Stard Schoolbook Chapter 42 by @tomy_blasbichler | Stardance...
|
tomy_blasbichler
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-10T17:22:12Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hey guys this is my first website created without much help from other people, friends or ai. Its just some things about me that i wanted to share :^). I hope you like it!", "repo": "https://github.com/tmsny/mypersonalsite", "demo": "https://mypersonalsitetmsny.netlify.app/index.html"}]...
|
[{"post_id": 31755, "ts": "202 [{"post_id": 31755, "ts": "2026-07-20T12:10:02Z", "hours": 0.4564, "text": "Hi Guys!, this is Devlog #2 of my personal site made up like a Biography in a School Book. FInally finished the entire HTML thing. Next will be basic CSS i think <3 bye and have a nice week"}, {"post_id": 31213, "ts": "2026-07-19T13:00:56Z", "hours": 0.6869, "text": "So brand new Project, i hope i get the job done! Today i started with a Blank VSCode and built most of the HTML Structure. I think that i work today on finishing it but idk, the hard part will be the css cause i want to make like a schoolbook of me (Biography in the Story Book Chapter 42) with many doodles mean comments and sketches :)"}]...
|
Title: Schoolbook Chapter 42 by @tomy_blasbichler Title: Schoolbook Chapter 42 by @tomy_blasbichler | Stardance
Devlogs:
So brand new Project, i hope i get the job done! Today i started with a Blank VSCode and built most of the HTML Structure. I think that i work today on finishing it but idk, the hard part will be the css cause i want to make like a schoolbook of me (Biography in the Story Book Chapter 42) with many doodles mean comments and sketches :)
Hi Guys!, this is Devlog #2 of my personal site made up like a Biography in a School Book. FInally finished the entire HTML thing. Next will be basic CSS i think <3 bye and have a nice week
Ships:
Hey guys this is my first website created without much help from other people, friends or ai. Its just some things about me that i wanted to share :^). I hope you like it!...
|
1793505373.2085176
|
1793591773.2085176
|
|
53669
|
minedeck by @tomy_blasbichler | Stardance
|
tomy_blasbichler
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: minedeck by @tomy_blasbichler | Stardance
|
1793498136.8932881
|
1794102936.8932881
|
|
59182
|
My awesome macropad! by @tomy | Stardance
|
tomy
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @tomy | Stardance
|
1793537292.87275
|
1794142092.87275
|
|
25153
|
My awesome macropad! by @tomush | Stardance
|
tomush
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @tomush | Stardance
|
1793425864.0727947
|
1794030664.0727947
|
|
44194
|
My own site! by @tomorobogaming | Stardance
|
tomorobogaming
|
0
|
2.65
|
0
|
[]
|
[{"post_id": 41858, "ts": "202 [{"post_id": 41858, "ts": "2026-08-06T10:28:52Z", "hours": 2.6492, "text": "i started doing website about my socials and my projects,i built the not full skeleton of this site but coding is almost done"}]...
|
Title: My own site! by @tomorobogaming | Stardance Title: My own site! by @tomorobogaming | Stardance
Devlogs:
i started doing website about my socials and my projects,i built the not full skeleton of this site but coding is almost done...
|
1793260211.0162768
|
1793865011.0162768
|
|
27112
|
My awesome macropad! by @tommymalone2012 | Stardan My awesome macropad! by @tommymalone2012 | Stardance...
|
tommymalone2012
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @tommymalone2012 | Title: My awesome macropad! by @tommymalone2012 | Stardance...
|
1793465450.8223019
|
1794070250.8223019
|
|
27600
|
My very own WebOS by @tommymalone2012 | Stardance
|
tommymalone2012
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My very own WebOS by @tommymalone2012 | Sta Title: My very own WebOS by @tommymalone2012 | Stardance...
|
1793354151.1632154
|
1793958951.1632154
|
|
64690
|
Name by @tommyjojo110 | Stardance
|
tommyjojo110
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Name by @tommyjojo110 | Stardance
|
1793065916.0294814
|
1793670716.0294814
|
|
3293
|
Astroneighbors by @tommybergman8 | Stardance
|
tommybergman8
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Astroneighbors by @tommybergman8 | Stardanc Title: Astroneighbors by @tommybergman8 | Stardance...
|
1793400568.3100822
|
1794005368.3100822
|