@HariBonda Considering recent acquisition of Astro by Cloudflare, seems like right choice at the moment.
You may start vanilla and decide as you move on.
You may mix and match as well https://t.co/FOiffQIARb
SVG icons have been "solved" myriad ways, but I find them all lacking.
Inline SVGs? Bloated DOM.
<img> tags? Can't change colors.
Icon fonts? Blurry at certain sizes, a11y issues.
CSS background-image? Still can't change colors.
But, today there's actually a perfect solution...
i've been using cloudflare a lot more recently and realised most explanations of their primitives are way too complex
so i made a simple primer: an introduction into cloudflare's primitives, starting with durable objects + kv
https://t.co/89xljNNjZy
React seems to be going through this moment where the mindset is flipping from "we are the memoization library" to "we are the everything is reactive library". They can do this because in both scenarios the base expectation is everything re-runs.
However, it encourages flipping the defaults. Like removing explicit dependencies (thank you compiler) and instead explicitly untracking (useEventEffect). I wonder how many other things are reversed. Like passing a function to `useState` lets initialization run once. Very useful in my stream with @rickyfm to let us fetch in our component.
But after doing @ryanflorence's cascading async drop-down example I started thinking how hard is it to initialize state multiple times? Do you unmount components each time (thanks key prop)? Do you synchronize state with an effect(NO!!!)? Do you synchronize state while you render and if so how do you store the previous values to compare? And can you guarantee everything is available with async timing?
I was in chat during this stream, but watching the video made me want to talk about the limits of this framing.
It's easy to look at things of what you can do with a given tool. And because these are just tools you can always escape them. You can really do anything with anything.
So talking about what you can't do with a tool generally comes down to performance. Either from overhead of a tool or from the fact something becomes so hard to do you will probably give up before you can do it optimally. Like good luck hand-rolling Resumability. You will probably give up and just hydrate the whole thing. Anything less than that is probably doable.
So why do framework authors talk so much about that zone? Because if history has proven anything as time passes the "problems" will continue to grow if left unchecked. Expectations grow over time and so do your problems. They have to be forward facing.
The part this doesn't capture is that the impact of these decisions is not limited to that last 10%. It can make the whole bar better. These things tend to not be a cliff. Your individual threshold may be, but the reality is more gradual. This would be better visualized as a color spectrum.
The reason everyone gets so caught off guard with new technology is the average hue can start occupying way more than 50% of the graph before it hits that threshold where you draw the line. And its also why innovation is underappreciated. Because this is just a function of time. React developers like to use jQuery when showing React's initial impact here. But if they used Angular.js it wouldn't be nearly as prominent change.
So talking about what you can't do with a solution is not the right way. Something that is impossibly hard to do today is not going to be mainstream enough to be considered a general problem. It's only when those who start to push beyond the boundaries reach some level of success does it establish itself as important.
So getting past React's past success (and I mean this for the React ecosystem as well) is important for innovation. If we curb ambition and settle for good enough then things don't improve. And it isn't because of the availability of technology, but because we didn't try.
Computer use is the first step toward a completely new form of human-computer interaction.
In just a few years, the way we interface with computers will be completely different from today.
Let me explain: