Building components with Sage - like in React

Who do you mean by “user” is that you/client that ads an element to the page or post? And is able to select options in the WP editor. If so, you might need blocks. Log1x/poet has a nice plugin for this. The documentation is not complete. But it seems to work.
You can add gutenberg blocks with this plugin. See the gutenberg docs for more info