React has a lot of opinionated, "magical" boilerplate. useThis, useThat, ... In my experience, Svelte did a much better job and is closer to vanilla html/js, but for some reason it seems to fail to gain significant traction.
I just looked at some Svelte examples and it's a mix of magic keywords (on, bind) with magic symbols (: | @) and new, completely unrelated syntax to both JS and HTML (#each, #if, :else). I guess it looks way more idiomatic if you have an IDE that highlights and lints it correctly. React with its few rules of hooks seems way closer to vanilla JS.
The goals of this project and Svelte seem very similar, so I'd be interested to see a more in-depth comparison.
Its name should always start with `use` so that you can tell at a glance that the rules of Hooks apply to it.
And it is required and enforced if you use the ESLint react-hooks plugin (which I'm guessing most large projects do).