Remix.run Logo
wuhhh 7 hours ago

I've written a fair bit of React and dipped in and out of Vue, Solid and Svelte over the past few years - I like to check in with different frameworks periodically, call it curiosity or FOMO. The general sentiment of the article is that React is old and slow compared to Solid/Svelte etc. While that's true, how many apps really need to squeeze that extra performance out of their underlying framework? Not many, I'd guess. For example, the ubiquitous krausest benchmark tests [0] operate on thousands of rows and the margins in results are shrinking - just today I noticed that the latest alpha from Vue has made huge strides forward.

React cannot iterate as quickly as other, smaller frameworks because of its size, but I guess that could also be seen as a positive thing. Even so, things like the React compiler are clawing back performance, taking cues from Solid, Svelte et al and these frameworks become more alike all the time.

For me the choice comes down to how I reason about the code I write. As others have pointed out, React feels closer to metal than Svelte - I find it easier to reason about because there's less magic going on behind the scenes. I really want to like Svelte, but I just can't click with it at all and I find the documentation lacking in deep, 'under the hood' detail.

On the flipside, I find Solid's docs to be superb - in depth articles on their reasoning, differences to React, etc [1][2]

On the whole, though, I find all these frameworks to be pretty good and what you can build is unlikely to be hamstrung by your choice in any way; though of course, React has a huge community behind it that you can't ignore. For hobby projects, try them all out - I had not worked with Vue 3 at all until recently, I just picked it up to try making a drum machine with the lovely Elementary [3] DSP library and I am really enjoying it! I hope we continue to see lots of development of all these frameworks and new ones pop up, because it's very clear to see how they all feed off one another, and that's good for everyone.

Shout out to Alpine.js [4] which flunks those benchmarks every time but remains my go-to for sprinkling reactivity in 'regular' websites.

[0] https://krausest.github.io/js-framework-benchmark/ [1] https://docs.solidjs.com/concepts/intro-to-reactivity [2] https://docs.solidjs.com/advanced-concepts/fine-grained-reac... [3] https://www.elementary.audio/ [4] https://alpinejs.dev/