While I would much prefer to only write Typescript types, this would drive me insane:
> The only thing I do on top of that is to use annotations like "@minimum 0" (or, in the email example, "@format email") where the base types are not enough, but those simply go inside comments.
Tanner Lisnley did this with React. He didn't share it but talked about his experience. Basically, he re-wrote React with only the parts he was interested in. Sort of like his own version of Preact. You might be interested in his blog post about the subject: https://tannerlinsley.com/posts/projecting-react
> Note: While <input> elements of type button are still perfectly valid HTML, the newer <button> element is now the favored way to create buttons. Given that a <button>'s label text is inserted between the opening and closing tags, you can include HTML in the label, even images.
It's faster and cross-platform (Windows/Linux/MacOS). Switching version managers is trivial. If you don't like it, just switch back in the time it takes to uninstall a binary.