Boot is a YSWS where you make your own OS, whether that be from scratch or based on an existing OS, and you get hardware to run it.
Used GitHub Copilot for code completion and partial code generation.
Boot is a YSWS where you make your own OS, whether that be from scratch or based on an existing OS, and you get hardware to run it.
Used GitHub Copilot for code completion and partial code generation.
This is Boot. My project for almost a year now. It is my YSWS (now active btw), where you build your own OS, and you get hardware to run it. This is now the second revision, which adds many, many features, QoL, pages, etc. I am really proud of how this turned out. I said it in my first ship message, I will say it again. I am most proud of this because it feels like a real product. I am actually making something someone else uses.
With that, Boot 2.0 is complete. It brings tears to my eyes.
Ok, maybe I am being a bit dramatic.
I finally got the shop filled and complete, along with some other things, so let’s go through them.
With that, Boot 2.0 is finished. I hope you guys enjoyed it. I will now proceed to ship it.
Log in to leave a comment
We are so incredibly close. Just a little bit longer.
Orders are now officially implemented 
Such an exciting thing!
Ok real talk here though I just had to make the UI
Still, I made everything before, and it is working great.
This was kinda hard, but also not really. The hardest part was the edge function, mostly because I don’t know TypeScript, but we got through it. I also had to handle a few things on the client side, but yeah. You can now order stuff!
That is it for now. All I need to do now is fill the shop!
Log in to leave a comment
We are so close to shipping again. So close.
Anyway, we did quite a good amount today!
I only need to do a few more things until I can ship again.
I need to fill up the rest of the shop and make the UI for prize options
Log in to leave a comment
Nice title, right?
Anyway, I redid the Prize Details Page today. At first, I wasn’t going to, but I figured I should to match the redid shop.
I believe it does look a bit better, but not as good as the shop redo. This didn’t take as long as the shop redo, obviously.
The Prize details page includes two sections
While making this, I decided to get rid of some prize types, such as grants. Grants will still be available, but not custom ones. If you want to stack grants, just buy multiple.
Very few things remain
After all that, I should be good to ship once more
Log in to leave a comment
Introducing the new shop.
Meet your new favorite place on the dashboard. Completely rebuilt from the ground up.
This was a long one. Honestly, I am surprised I worked this long.
Starting with the obvious. I did take inspiration from the Flavortown shop. Hey, if it ain’t broke, don’t fix it. It certainly isn’t a direct copy. I added my own edits and tweaks.
I really did add alot and it is a whole lot more fleshed out. I kinda winged the UI, just experimenting as I go. But I think it turned out well.
I think I might disable the feature that requires a certain number of OSes to be shipped before anyone can order anything from the store. This should help with motivation.
I still have to redo the prize details page. but idk if I will redo that from scratch. Maybe, actually probably will. I also have to add the navigation to the prize details page bhut that should be easy.
That is all from me. See you next time. Bye Bye
Log in to leave a comment
Well, this was a super repetitive, boring update.
First off, I fixed the bug that the hackatime session was being restored properly, but the hackatime auth page was still showing.
Then I kept getting a build error on Vercel. Turns out the package material_symbols_icons is now incompatible with the current version of Flutter. So I got rid of that. And that is where all the time went.
I had to manually painstakingly go through every script and replace instances of Symbols. to Icons. It was annoying, but eventually I got through, and now here we are.
This may speed it up a bit by not having another package, but probably not noticeably.
Log in to leave a comment
Airball after Airball
I pushed the new hackatime system, and to say the least, there were some issues.
It worked perfectly on localhost, but then when I pushed it to prod, everything started to go downhill.
So this is just me going back and forth, turns out I configured some things wrong in vercel.json, but also forgot to add the client ID to the prod app.
So that was cool.
I also closed the shop. Yes, sad I know, but I am redoing it, so yeah, good news there.
Log in to leave a comment
Big one today
Today was a big day for Boot. So I have had problems with people not being able to use it because they didn’t sign into Hackatime with Slack. Anyway, I asked for help and looked to see what other YSWSs did; turns out I should’ve created an OAuth app.
The OAuth app system is still not perfect. I liked not having another login page. But it is still good.
Anyway, this fixed it, and now it works reliably every time altough it added some complexity to the app, but ehh. The good news is that you should only need to do it once when you create your account.
I did run into an issue while implementing it, though it seems like it did not like to be run on browsers because of the CORS policy. So I had to make an edge function for logging into Hackatime. I wanted to do it without an edge function, but it is still good. This took me way, way longer than I would like to admit.
Another feature that piggybacks off of this is that since Hackatime OAuth sessions are long-lived, I can store them, and now you only need to log into Hackatime once to forever link your account.
Overall, pretty happy with this feature; it makes it more reliable and better in the long term.
Log in to leave a comment
We are back
This was spread out over a few days because some of it wasn’t significant enough for its own devlog.
The big addition is the AI statement section for declaring AI use. The policy is pretty much exactly the same as Flavortown’s. Hey, if it isn’t broke, don’t fix it.
I also fixed an error with uploading pictures, specifically when uploading an image for a shop item. I improved the edge function a little bit so it wouldn’t be so fussy.
I also fixed various minor warnings just to clean up some things.
Log in to leave a comment
Let’s go! More things done!!!
The elephant in the room is the new Error Mapping. Now, every error that goes through the notifications will be put through an error mapper to get a more human-readable format.
Right now, the cases it handles are few but cover the most common errors. As I see more errors pop up, I will make sure to add a case for them. And of course, if no suitable error is found, then it will fall back to a unexpedcted error error.
But that is not the only thing I did today; I also added HCA user ID as a fallback for hackatime so just in case you don’t sign up to Hackatime with a Slack ID, then it should still be able to find you.
Log in to leave a comment
Just a quick (well, quick-ish) bug fix today.
I tested out the shipping process, and for some reason, the function wasn’t calling. So turns out I did a little oopsie, and in the auth header I put the Anon key instead of the service key, so I fixed that.
This wasn’t in the repo; it was just a config thing, so no changes in GitHub, sadly.
In brighter news, my ship was approved, and I got cookies!
I think I am going to finish up the shop and then ship it one last time, then just focus on running it, actually.
Log in to leave a comment
I made a website for my new YSWS Boot. Boot is a YSWS where you build your own OS and get prizes for it. The hardest part was probably UI. Not really the building part of it, but designing it and making it look good. Honestly, I am proud of all of this. I have made many, many projects before, but they have never felt as fleshed out and real as this one. Hope you guys enjoy it.
Today on I was bored today. Another feature, because I was bored.
When signing up, you will now be added to #boot and #boot-anouncements.
This did not take long at all. I seriously just copied the Slack message function. Welp, that is it.
Log in to leave a comment
I am really bored today …
I decided, in my boredom, to create a tutorial. It is similar to the one you can find here on Flavortown.
There are four tasks:
These objects are interactable, so if you click them, it will take you to where you can take action.
EX: Create first project -> Create project screen
Also, as a QoL feature, it automatically hides like it never was there when you complete all tasks.
Log in to leave a comment
Quick one here today.
All I did today was just fix a few bugs. I am now pushing some of this stuff and doing more bug testing.
Some of the bugs I found:
I had some AI help with the Project restrictions only because I have already done all the logic. I just wanted an easy way to copy it over to editing.
I don’t suppose there to be alot more time tracked because it is all testing and doing stuff outside of VS Code
Picture of updated hackatime project note.
Log in to leave a comment
Another one bites the dust.
Ha you see what I did there.
And with that, Shipping is marked off the checklist.
Today was very productive but a hair-pulling-out day. Today the biggest problem I had wasn’t even with the actual program itself no, it is stupid Docker and trying to get a local environment of Supabase going. I actually hate Docker. I installed it, and now I am getting Network changed errors (and yes I know 100% it is from Docker) but obvi that wasn’t spent in a code editor so it doesn’t count for time. Anyway, after I got all that sorted, I finished up the edge function by testing it. Really, all it was were very trivial things I had to fix, like misspellings, no point in documenting them here.
I also did some stuff yesterday, but it wasn’t that significant, just minor tweaks to the logic.
Picture of my ship approved timeline object.
Log in to leave a comment
We are getting to the final stretch
This week, I have not had much time to work, but we worked a bit today (and the past two days).
I did pretty much everything for shipping. What I mean is that I have to send it to Airtable. It was a bit intimadating and I thought/researched hard about how I would go about this, but eventually landed on a system.
At the user login, it takes the access token and encrypts it with a super secret key (wow, so secret), then when it comes time to ship it wil decrypt that key and use it for what it needs to use it for. Now, full transparency here, I used AI for the crypto, no clue how that stuff works. And that is basically what I did. I am not quite done yet, but pretty close.
The picture is of the login screen. I have no idea what I could’ve done to show this. It is all backend stuff, and I obvi can’t show a pic of a test run, I can’t be giving out pii like that.
Log in to leave a comment
Today was pretty easy!
Pretty much all I did was reinforce some of the banning checks, add some nice messages, and add conditions to shipping a project.
So now, if you are Hackatime banned it will not let you in at all. Also, with shipping projects, it won’t let you if you aren’t verified or aren’t YSWS eligible for some reason.
Oh, also, I added a section to the Ship approved item in the timeline to include the reviewer’s score so you can see in what areas you can improve!
Log in to leave a comment
Pretty small update today.
I added functionality for login hints. These will be utilized on the landing page for the get started field. Basically, it redirects people to the Hackclub auth login page, as if you had pressed the Login with Hackclub button, but also includes a login hint.
I also added the functionality to the redesign branch of the landing page repo.
Log in to leave a comment
Ok been a good amount of time since my last devlog. Sorry, I got busy. But I am back at it again now that it is the weekend!!!!
Anyway, today I worked on the prizes. More specifically, product config and variations. I added the logic and UI to the Admin_Page.
Log in to leave a comment
Hey, 2 devlogs in a day lets go.
This time it went much better.
I had to fix a bug with the upload edge function caused by not having the prefixes right. It took a little bit to completely fix, but mostly trivial. I added a section in the reviewer for an override hour justification. Again, pretty trivial.
What I did this time around:
Picture showing images working again.
Log in to leave a comment
Today was literally awful. No joke, awful.
So all I did today was try to fix one single bug. Yes, that is right, one single bug.
So what is this bug that took me so long? It was quite a weird bug. Any time I would click on something interactive (more prevalent on the project page), the page would reload.
Weird, but I looked through the code to see if maybe I made a mistake and refreshed the page or called setState() wrong. I couldn’t find anything. I was getting desperate. I have already spent 2 hrs on this, and I needed to fix this. And of course, most of it didn’t count for hackatime, so that is great. Eventually, I had enough, and I used AI. And of course, that didn’t work either. I probably spent 25% of my copilot allowance just on that and got nowhere. Then I asked it to just write extensive debug logs of everything, and to my surprise, it worked. We found the issue turned out to be a bug in the deferred page system, so we got that fixed, and now it works. yay!
Oh, also, I added a survey to the shipping process.
What I did today:
Video of how it doesn’t reload every time now.
Log in to leave a comment
First Devlog!!!!!!!!
Starting this on Flavortown a little late.
Since I am starting this late, I can’t possibly put down all that I did before I started. (Look at the commits)
Today I fixed some bugs that were reported
The picture is of how the dashboard looks like now.
Log in to leave a comment