If the computer is a bicycle for the mind, Tangent is a computer for school.
Toshit
Check their projects out: epoxy-tls, powerd, m3-dreamland, scramjet, SoM Harbor, Summer Of Making, dreamland.js
Once you ship this you can't edit the description of the project, but you'll be able to add more devlogs and re-ship it as you add new features!
i did some other minor workflow optimizations and updated the github actions to check types and run eslint. it'll make new development faster trust
i optimized how the site was served - sveltekit is definitely not a natural fit for val town, but i made it work, and this update (a full custom adapter instead of rigging something w/ adapter node) makes it go even faster
turns out the original authentication system was a little halfbaked. i made a new one that flows a lot better, and it handles authentication at the top level instead of in each app.
i started with auth, and i'm returning to auth! students at my current school district can now log in to open School (Tangent's version of the home page) which currently just has a grades panel based on some old code. soon: send your auth to the backend to verify yourself and gain a jwt
among other things (improving discord integration and adding a feedback page), i've been working on storage. this means EVERYTHING is now persisted to localStorage by default. i also added a devtools for viewing storage.
google messages... even though i had some old code, because i refactored a lot of things (including switching to devalue) and hit a LOT of friction in other places, it's taken a while. it's done now though.
i value atomic devlogs, but none of these changes were large enough to warrant their own one, so they all get in one big devlog! mainly just minor ui appearance tweaks and adding placeholder apps to the dock
i've known from the start that i wanted to base tangent around storage. i've made a first step towards it: a storage object synchronized across the apps. the whole thing goes down, although only incremental changes go up for efficiency's sake. also had to use a syncing
variable to prevent infinite loops
more poor choices: i hosted tangent on a platform where files are 80kb max, but the theme page includes material color utilities which is more than 80kb, so i had to do some hardcoding and tree shaking to reduce its bundle size
i'm starting on the hard task of connecting and sharing data across the iframe boundary. i got something working though! see: theme works both inside and outside of iframe
decided i didn't want the website or brand to use plain inter, so turned on cv11, which makes the a look like ɑ
i refined windowing: tweaked the colors used, made the hot corner more reliable (and added using alt as another option), made windows maximal (overlay the essentials instead of adding a chonky bar), and implemented hover tooltips for windows. it's almost time to start building the actual apps
i implemented windowing! heavily inspired by gnome (in fact i even adapted some of its layout code)
i think i burned out or something. i didn't really feel the motivation to work on it this weekend, or much energy at all. i thought reflecting on the decisions that led me might help - and it did actually, i decided that i need to be a bit more local first and that my current implementation was flawed. this should give me more space to make without worrying about the specifics or foundation tomorrow.
trying something new, documenting architectural decisions, for this project. it was originally just to get credit for time spent thinking, but having to explain things to yourself is clarifying my thoughts in the moment and will help me in the future. that's also one of the things i hope tangent will help people do.
you'll see more on identity once i finish up the last part (face verification), but first: i finished switching the S3-compatible endpoint you use for storage to another one (in case you don't trust tangent)
set up the foundations: sveltekit, uploading script, css reset + theming, and a little eye candy on the login page