Living in Utah
https://thoriumsim.com
The only resources it downloads aside from the HTML come from Unpkg or are vendored NPM modules (for speed, loading from a CDN is slower).
The website is the source code.
The only resources it downloads aside from the HTML come from Unpkg or are vendored NPM modules (for speed, loading from a CDN is slower).
The website is the source code.
No React. No Tailwind. Hosted on Cloudflare Workers because I wanted to mess with the response headers to enable multi-thread support (but I never figured that out, so maybe I'll switch to a pure static host).
It's about as vanilla as it gets.
No React. No Tailwind. Hosted on Cloudflare Workers because I wanted to mess with the response headers to enable multi-thread support (but I never figured that out, so maybe I'll switch to a pure static host).
It's about as vanilla as it gets.
Furthermore, Oreos are delicious.
Furthermore, Oreos are delicious.
But the point is that you can do these complicated UI updates in user land without it being miserable to debug.
But the point is that you can do these complicated UI updates in user land without it being miserable to debug.
There are ways to make it more sophisticated and less boilerplate-y, but there are no surprises over when the UI updates. It's all very explicit.
There are ways to make it more sophisticated and less boilerplate-y, but there are no surprises over when the UI updates. It's all very explicit.
Events. Its like this.
I fire off an HTTP request while firing off an "optimistic-update" event. The relevant component listens for that and updates its state, stores the previous state, and calls this.update().
The HTTP request errors, so I fire ...
Events. Its like this.
I fire off an HTTP request while firing off an "optimistic-update" event. The relevant component listens for that and updates its state, stores the previous state, and calls this.update().
The HTTP request errors, so I fire ...
You're doing good work. 🫡
You're doing good work. 🫡
useDeferredValue
useEffect
useOptimistic
useSyncExternalStore
useTransition
And a compiler.
useDeferredValue
useEffect
useOptimistic
useSyncExternalStore
useTransition
And a compiler.
When you're manually orchestrating UI updates, you have more control, and need fewer reactivity tricks.
When you're manually orchestrating UI updates, you have more control, and need fewer reactivity tricks.
The vulnerability is still a big deal, but the CVE pipeline is working as designed.
The vulnerability is still a big deal, but the CVE pipeline is working as designed.
LONG LIVE LARRY!
LONG LIVE LARRY!