I made a WebOS with an infinite workspace. Travel far and wide, big and small, and everywhere inbetween in this expansive open-world Web Operating System.
[DEMO](https://canvasos.ortley.pages.gay/index.html)
## Challenges I faced
Since this is my first time using React, I had to get used to React's reactiveness and it's stateful systems. State has to be explicitly defined, rather than being the default for all values, so this led to some delays in the displaying of some values early on. But once I understood how it was designed, it really came together.
Then there's the CSS, oh boy. What's great is that it always works in some way. But what's bad is that it never works in your way. Even simple elements would look fine with a couple lines of code, but there would always be a little off-centering, a little imbalance, a little alignment issue that meant a full change of the element was necessary. I know way too much about margin collapse and baseline alignment than I ever think I needed to know.
That being said, when it works, it works really well. I really like how simple some processes are, like how event callbacks can be handled, and `flexbox` styling.
## Proud moments
Getting the state synced across the whole app. This took **ages** to get right, with proxies to `useState` hooks and subscribe lists in order to make every component have a common sense of truth as changes are made elsewhere. Major helper in teaching me how react handles state.
## Honourable mention
One thing that I really liked was the CI/CD pipeline where it goes like this:
- push live dev to `main`
- merge `main` to `prod`
- CI action builds program and pushes distributables to `pages`
- `pages` serves the website
It's really fun to see the actions just happen yk. like - I didn't have to go through the process of building the project myself, then uploading it to some portal on a buggy website, it just does its thing and then I have my website. I kinda want to do some more of it :]
Though unfortunately the site I'm using takes a while to update it's cache, so it might not load correctly if I've just pushed an update.
- 4 devlogs
- 16h
- WebOS 1

this devlog was hella fun bc for once i could actually both see and feel the results of what I was changing - can now definitely see why “frontend engineer” is a job someone would want to have.


. Due to the CORS restrictions used by the APIs endpoints of the streaming sites, HTTP requests couldn’t be honoured if they came straight from my website; they would instead have to be proxied through a backend server . I had no intention of maintaining any sort of backend, especially for my first project.