This repo is great proof that React is over engineered. Vanilla JS has WebComponents[1] and Templates, and a vDOM is easy to support (it existed long before React) and the DOM was the original place to store state in custom properties that you could manipulate internally with 'this'. What's missing is the ecosystem of Reusable WebComponents (primatives) based around this simple approach.
That's why this is so great to see. As more of a purist, I would try to make this a Vanilla JS lib instead of TS and remove one more build step. But the idea of 60 lines of code that use primatives (thus making this hyper extendable) is perfect.
[1] https://developer.mozilla.org/en-US/docs/Web/Web_Components
https://www.npmjs.com/package/react
This repo is proof of nothing and I'm tired of reading those knee-jerk takes. You can't say "react's toolchain is a mess" and "prove" it with a repo that has zero toolchain, no JSX, etc. It's a bit saying "vlc is so bloated!" to someone showcasing "a video player in 30 lines of QML" with no play/pause button.
Not to detract from the rest of your post, the core concept and primitives are great. Would you like them served up in a NPM micro-dependency, maybe? You'll just … add JSX, babel etc separately, will be missing half of react's features like hooks etc and will still have as many dev dependencies as before.
I do sometimes wonder what the people complaining about npm packages and the React ecosystem/build process are developing? It would be interesting to hear. I've shipped complex web applications built using Create React App without needing to "eject", and without installing dozens of packages from npm.
- https://reagent-project.github.io/
- https://github.com/day8/re-frame
- https://github.com/tonsky/rum
And my favourite
- https://github.com/fulcrologic/fulcroHosting your work on top of another ecosystem, such that you can still use the underlying ecosystem, gives you a lot of leverage out the gate
To the author: check out Mercury (2014), Hyperapp (2017), Choo (2018)
Hyperapp - https://github.com/jorgebucaran/hyperapp
I don't see similar posts for Java/.Net/Go ecosystem. Spring in 500 lines or 100x faster ASP.net!!