It wasn't meant to be. OP expressed a desire to "code apps directly in React" and avoid "React Native with its overhead." But that's meaningless: the React design is a layer on top of an underlying model, and that layering will always impose some overhead.